2016-07-21 4 views
2

Я пытаюсь получить все ссылки с этого сайта: https://www.supremecourt.uk/cases/search-results.html?q=affidavitНедостающие элементы в getElementsByTagName

со следующим кодом:

libxml_use_internal_errors(true); 

$html = file_get_contents("https://www.supremecourt.uk/cases/search-results.html?q=affidavit"); 

$docs = new domDocument; 

$docs->loadHTML($html); 


$anchors = $docs->getElementsByTagName('a'); 

$links = array(); 

foreach($anchors as $anchor) { 
    echo $links[] = $anchor->getAttribute('href'); 
    echo '<br>'; 
} 

но возвращаемые ссылки не включают ссылки из результатов поиска , Почему это и как я могу это исправить?

+0

Обеспечить вывод, который вы получаете. –

ответ

1

Результаты поиска на этом сайте предоставлены Google CSE по запросу JSONP и, вероятно, (не уверен, поскольку я никогда не пытался «сломать» CSE, но есть подпись в запросе Google, чтобы эта задача не была легкой) t быть полученным с PHP или другими способами, которые не включают безгласный браузер, который может делать все вещи JS (PhantomJS, CasperJS, Selenium).

+0

Привет, Роман. Я запускаю скрипты из бесплатного хостинга, поэтому я не знаю, могу ли я использовать безгласные браузеры. Я попробую regex. Если у вас есть другие предложения, напишите их. Благодарю. –

+0

@LukaszB regex не может вам помочь. Посмотрите на код (view-source: https: //www.supremecourt.uk/cases/search-results.html? Q = affidavit), нет результатов поиска. –

+0

@ LukaszB Просто немного исследовал. Вы можете запросить https://www.googleapis.com/customsearch/v1element?v=1.0&q=affidavit&key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&cx=000046730316008719618:zmvytun3c8i, чтобы получить результаты в формате JSON. Но будьте осторожны, потому что я уверен, что после некоторых запросов за короткое время от того же IP-адреса Google может начать возвращать CAPTCHA. –

Смежные вопросы