我正在尝试使用简单的 HTML DOM 从 Zen-cart 商店按产品部分抓取产品数据。我可以很好地从第一页抓取数据,但是当我尝试加载产品的“下一页”时,网站返回 index.php 登录页面。
如果我直接通过 *http://URLxxxxxxxxxx.com/index.php?main_page=index&cPath=36&sort=20a&page=2* 使用该功能,它会很好地从第 2 页刮取产品信息。
如果我使用 cURL,也会发生同样的事情。
getPrices('http://URLxxxxxxxxxx.com/index.php?main_page=index&cPath=36');
function getPrices($sectionURL) {
$opts = array('http' => array('method' => "GET", 'header' => "Accept-language: en\r\n" . "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6\r\n" . "Cookie: zenid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"));
$context = stream_context_create($opts);
$html = file_get_contents($sectionURL, false, $context);
$dom = new simple_html_dom();
$dom -> load($html);
//Do cool stuff here with information from page.. product name, image, price and more info URL
if ($nextPage = $dom -> find('a[title= Next Page ]', 0)) {
$nextPageURL = $nextPage -> href;
echo $nextPageURL;
$dom -> clear();
unset($dom);
getPrices($nextPageURL);
} else {
echo "\nNo more pages to scrape!!";
$dom -> clear();
unset($dom);
}
}
关于如何解决这个问题的任何想法?