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

时间:2012-07-19 19:06:27

标签: php html screen-scraping

  

可能重复:
  HTML Scraping in Php

我想知道是否有任何方法可以从网页获取一个特定的文本字符串,这些文本将立即更新,然后使用PHP。我搜索“遍布互联网”并没有找到任何结果。刚刚看到preg_match可以做到,但我不明白如何使用它。

想象一个网页包含:

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

在使用file_get_contents将页面放入变量后,如何使用PHP进行此操作?

提前致谢:)

4 个答案:

答案 0 :(得分:12)

您可以使用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**

答案 1 :(得分:2)

您可能想查看

  

简单的HTML DOM库

这里有一个小教程: http://www.developertutorials.com/tutorials/php/easy-screen-scraping-in-php-simple-html-dom-library-simplehtmldom-398/

这是一个屏幕抓取API,它允许您向其提供html,然后以jQuery类似的语言获取部分内容。

答案 2 :(得分:0)

您在谈论data scraping:从人类可读输出中提取数据的行为。在您的情况下,这是<div>标记之间的任何内容。使用PHP DOM的扩展名来获取所需的标记并提取数据。谷歌搜索PHP DOM教程。

答案 3 :(得分:0)

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

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

    //traverse according to your preferences

} 

//return or output