使用PHP从网页中提取特定数据

7

可能是重复问题:
PHP中的HTML抓取

我想知道是否有一种方法可以使用PHP从网页中获取特定的文本字符串,该字符串会不时更新。我已经“整个互联网”都搜索过了,但没有找到任何东西。只看到preg_match可以做到这一点,但我不知道如何使用它。

想象一下一个网页包含了这个:

<div name="changeable_text">**GET THIS TEXT**</div>

在使用 file_get_contents将页面存储在变量中后,我该如何使用PHP完成此操作?

提前感谢您的帮助 :)


忘记 div 名称。LOL - Daniel Silva
2
你要查找的主题是“屏幕抓取”。更多信息请参见 http://stackoverflow.com/tags/screen-scraping/info - jumpnett
4个回答

15

您可以使用DOMDocument,如下所示:

$html = file_get_contents( $url);

libxml_use_internal_errors( true);
$doc = new DOMDocument;
$doc->loadHTML( $html);
$xpath = new DOMXpath( $doc);

// A name attribute on a <div>???
$node = $xpath->query( '//div[@name="changeable_text"]')->item( 0);

echo $node->textContent; // This will print **GET THIS TEXT**

2

0
你在谈论 数据抓取:即从人类可读的输出中提取数据。在您的情况下,这就是在 <div> 标签之间的所有内容。使用 PHP DOM 扩展来获取所需标签并提取数据。通过 Google 搜索 PHP DOM 教程。

0
$delements= file_get_html('url will go here'); 

foreach($elements->find('element') as $ele) {

    //traverse according to your preferences

} 

//return or output

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接