从结果中刮取链接

时间:2012-01-05 18:53:50

标签: php screen-scraping

这个简单代码的问题在哪里:

<?php

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://www.google.com/search?q=newyork');
$xpath = new DOMXPath($dom);
$entries = $xpath->query("//h3/a/@href");
foreach($entries as $e) {
  echo $e->textContent . '<br />';
}
?>

当我跑步时,我只得到白色的窗户(没有)。谷歌有问题吗?

1 个答案:

答案 0 :(得分:0)

一些建议,继续this related answer by Michael

尝试使用file_get_contents()获取HTML:

$dom = new DOMDocument();
$google_results = file_get_contents('https://www.google.com/search?q=newyork');
$dom->loadHTML($google_results);

如果file_get_contents()也失败,请确保在配置中启用allow_url_fopen(php.ini),或者考虑使用cURL获取远程数据。

无论如何,启用错误报告后,PHP应该会显示一些错误或警告,当某些内容无法正常工作时,这总是有用的。