使用Simple HTML DOM解析具有特定查询字符串的网页时,我遇到了一些奇怪的事情。一些查询字符串在尝试解析经销商网站的二手车页面时有效,但其他人则没有。似乎只要页面上有更多的车辆显示,它就不会返回HTML内容(这意味着如果我们在分页的最后一页上它将起作用,否则它将不起作用)。只是想知道是否有人有任何想法。我已经尝试在禁用javascript的情况下查看页面以查看标记是否不同,但似乎页面的行为类似。以下是代码,如果有人有任何想法...或更好的解决方案。谢谢大家!
require ('simple_html_dom.php');
error_reporting(E_ALL);
$startingURL = 'http://www.buickgmcofmilford.com/VehicleSearchResults?model=&certified=&location=&miles=&maxPrice=&minYear=&maxYear=&bodyType=&search=preowned&trim=&make=&pageNumber=2';
$getHTML = file_get_html($startingURL);
if ($getHTML == true){
echo '<h1>TRUE</h1>';
var_dump($getHTML);
}
else {
echo '<h1>FALSE</h1>';
var_dump($getHTML);
}
当使用带有上述URL的var_dump时,它返回一个布尔值false。使用以下网址时,我可以解析数据没有问题 - http://www.buickgmcofmilford.com/VehicleSearchResults?model=&certified=&location=&miles=&maxPrice=&minYear=&maxYear=&bodyType=&search=preowned&trim=&make=&pageNumber=5
感谢。
答案 0 :(得分:0)
您不应使用默认函数file_get_html
来获取远程内容,该函数使用file_get_content
来下载页面内容。有时,目标网站将阻止用户代理或引用者的请求。您可以先尝试PHP Curl下载页面内容,然后使用simple_html_dom