【发布时间】:2016-02-09 15:50:44
【问题描述】:
在使用 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。使用以下 URL 时,我可以毫无问题地解析数据 - http://www.buickgmcofmilford.com/VehicleSearchResults?model=&certified=&location=&miles=&maxPrice=&minYear=&maxYear=&bodyType=&search=preowned&trim=&make=&pageNumber=5
谢谢。
【问题讨论】:
-
dom 对格式错误的 html 非常挑剔。您的浏览器能够显示它意味着什么都没有。b rowers 对糟糕的 html 非常宽容。 dom 不是。
-
@MarcB 任何你认为第二个 URL 似乎返回没有问题的原因,但第一个 URL 不能返回任何东西。似乎标记在两种情况下都是相同的......?
-
您可以使用DOMDocument::loadHTML - 它会发出很多警告,但似乎有效。
标签: php html parsing simple-html-dom