简单的HTML DOM返回false

时间:2016-02-09 15:50:45

标签: php html parsing simple-html-dom

使用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

感谢。

1 个答案:

答案 0 :(得分:0)

您不应使用默认函数file_get_html来获取远程内容,该函数使用file_get_content来下载页面内容。有时,目标网站将阻止用户代理或引用者的请求。您可以先尝试PHP Curl下载页面内容,然后使用simple_html_dom

进行解析