我正在URL中进行一些操作,如下所示。
$paginationPages=array();
$productCount=intval($htmlProductPage->find('div.paging span.itemcount',0)->plaintext);
if($productCount/16>1){
$pagecount=ceil($productCount/16);
for($i=2;$i<=$pagecount;$i++){
$urlSplitArray=explode('.',$productUrl);
$urlSplitCount=count($urlSplitArray);
$urlSplitArray[$urlSplitCount-2].="[".$i."]";
$paginationPages[]= implode('.',$urlSplitArray)."<br>";
}
#print_r($paginationPages);
}
我在foreach中获得了所有链接以进一步进行
foreach($paginationPages as $nextUrl){
#$nextUrl="http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm";
$htmlProductPage=file_get_html($nextUrl);
foreach($htmlProductPage->find("div.Item") as $element){ //error occurs here
echo $element->outertext;
}
}
变量$nextUrl
具有值
“ http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm ”
div.Item
动态传递链接时找不到元素。但是,当我在for循环中直接分配url时,我可以找到相同的元素。为什么会这样呢?
由于此语句而出现问题:
$paginationPages[]= implode('.',$urlSplitArray)."<br>";
的print_r $paginationPages
:
Array
(
[0] => http://www.100percent.co.nz/kitchen-and-cooking/ovens/freestanding[2].htm<br>
)
您正在<br>
页面名称末尾标记一个元素,这意味着无法使用以下代码检索页面:
foreach($paginationPages as $nextUrl){
$htmlProductPage=file_get_html($nextUrl);
我建议添加一个file_get_html
已成功检索页面的支票,然后再分析该页面以抓取内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句