【问题标题】:Get <div> content with PHP使用 PHP 获取 <div> 内容
【发布时间】:2014-07-27 19:18:10
【问题描述】:

我正在尝试通过file_get_contents 获取&lt;div&gt; 中的内容。我想做的是从 google.com 上的 div resultStats 获取内容。我的问题是(afaik)打印它。

一点代码:

$data = file_get_contents("https://www.google.com/?gws_rd=cr&#q=" . $_GET['keyword'] . "&gws_rd=ssl");
preg_match("#<div id='resultStats'>(.*?)<\/div>#i", $data, $matches);

简单地使用

print_r($matches);

只返回 Array(),但我想preg_match 这个数字。任何帮助表示赞赏!

编辑:感谢您向我展示了正确的方向!我摆脱了preg_ 的调用,转而使用 DOM。虽然我对 PHP 很陌生,这让我很头疼;我在 Stack Overflow 上找到了这段代码,我正在尝试对其进行编辑以使其正常工作。到目前为止我只收到一个空白页,不知道我做错了什么。

$str = file_get_contents("https://www.google.com/search?source=hp&q=" . $_GET['keyword'] . "&gws_rd=ssl");
$DOM = new DOMDocument;   
@$dom->loadHTML($str);

//get
   $items = $DOM->getElementsByTagName('resultStats');

//print
   for ($i = 0; $i < $items->length; $i++)
        echo $items->item($i)->nodeValue . "<br/>";

} else { exit("No keyword!") ;}

【问题讨论】:

  • 天啊。 HTML 上的 preg_match !!!你得到here
  • @jason-ooo 感谢您为我指明了正确的方向!我摆脱了 preg_ 并转而使用 DOM。虽然;我对 PHP 很陌生,这让我很头疼……我在 StackOverflow 上找到了这段代码,我正在尝试对其进行编辑以使其正常工作。到目前为止,我只收到一个空白页,不知道我做错了什么。巴斯宾:pastebin.com/Y4GpT961
  • 请记住,问题的格式应该对长期读者有用 - 因此编辑标记和问题答案并不理想。我会努力解决的。
  • 我已将您的答案移至单独的答案块。我将您的粘贴板转换为代码块 - 我们不太喜欢那些,因为它们在实践中可能很脆弱。感谢您发布您的答案。

标签: php parsing dom preg-match file-get-contents


【解决方案1】:

代表 OP 发布。

我决定使用PHP Simple HTML DOM Parser,结果是这样的:

include_once('/simple_html_dom.php');
$setDomain = "https://www.google.com/search?source=hp&q=" . $_GET['keyword'] . "&gws_rd=ssl";
$str = file_get_html($setDomain);
$html = str_get_html($str);
$html->find('div div[id=resultStats]', 0)->innertext . '<br>';

问题解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    相关资源
    最近更新 更多