Я не могу получить определенный URL на странице поиска - PullRequest
0 голосов
/ 05 октября 2018

Я захожу на сайт недвижимости и ищу по названию города.После этого я хочу получить 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

Есть идеи?Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Синтаксический анализатор использует libxml для извлечения элементов, но эта страница интенсивно использует html5, пропускает определенные закрывающие теги и т. Д. Это не совсем строгий XML, поэтому он пытается "исправить ошибки", угадывая, где закрыть отсутствующиетеги, возвращающие неверные результаты.

Вам нужен анализатор с поддержкой html5, такой как HTML5DOMDocument, который расширяет DOMDocument и должен иметь в основном тот же интерфейс.

0 голосов
/ 05 октября 2018

Можете ли вы сделать это с помощью jQuery?в этом случае это захватить href

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

здесь тест jsfiddle

...