0

我进入房地产网站并按城市名称搜索。之后,我想获取大阪市建筑 URL。在这里http://brillia.com/search/?area=27999 有四个。 

我正在使用该链接来获取 URL。

$allDivs = $parser->getElementsByTagName('div');
    foreach ($allDivs as $div) {
        if ($div->getAttribute('class') == 'boxInfomation') {
            $allLinks = $div->getElementsByTagName('a');
            foreach ($allLinks as $a) {
                $linkler[] = $a->getAttribute('href');
            }
        }
    }

但我不能抓住那些。其实我抓的不只是大阪市页面的URL,实际上都抓到了。当我尝试查看大阪页面站点的源代码时。它表明http://brillia.com/search/这就是为什么我要抓住所有其他链接......

但是我怎样才能在这里只抓取 URL ->http://brillia.com/search/?area=27999

任何想法?谢谢你。

4

2 回答 2

1

你可以通过使用 jQuery 来做到这一点吗?在这种情况下,这抓住了一个 href

 $("div h3 a").each(function(){
    var link = $(this).attr("href");
    console.log(link);
 });

这是一个jsfiddle测试

于 2018-10-05T06:58:25.210 回答
1

解析器依赖于libxml提取元素,但该页面大量使用 html5,省略了某些关闭标签等,这并不是真正严格的 xml,因此它很难通过猜测在哪里关闭丢失的标签来“纠正错误”,返回错误的结果。

您需要一个具有 html5 支持的解析器,例如HTML5DOMDocument扩展DOMDocument,并且应该具有几乎相同的接口。

于 2018-10-08T12:08:44.170 回答