使用 PHP 从网页中提取特定数据 [重复]

Posted

技术标签:

【中文标题】使用 PHP 从网页中提取特定数据 [重复]【英文标题】:Extracting specific data from a web page using PHP [duplicate] 【发布时间】:2012-07-19 00:55:31 【问题描述】:

可能重复:html Scraping in php

我想知道是否有任何方法可以从网页中获取不时使用 PHP 更新的特定文本字符串。我搜索了“整个互联网”,但一无所获。刚刚看到preg_match可以做到,但是不明白怎么用。

想象一个网页包含以下内容:

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

在使用file_get_contents 将页面放入变量后,我该如何使用 PHP 来实现?

提前致谢:)

【问题讨论】:

忘记 div 名称。哈哈 您要查找的主题是“屏幕抓取”。更多信息在这里***.com/tags/screen-scraping/info 【参考方案1】:

你可能想看看

简单的 HTML DOM 库

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

这是一个屏幕抓取 API,可让您将 html 提供给它,然后以 jQuery 类似语言获取其中的一部分。

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

您说的是data scraping:从人类可读的输出中提取数据的行为。在您的情况下,这是 &lt;div&gt; 标签之间的任何内容。使用PHP DOM 的扩展名获取您想要的标签并提取数据。谷歌搜索 PHP DOM 教程。

【讨论】:

【参考方案4】:
$delements= file_get_html('url will go here'); 

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

    //traverse according to your preferences

 

//return or output

【讨论】:

以上是关于使用 PHP 从网页中提取特定数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中使用正则表达式从特定 xml 标记中提取特定值 [重复]

如何使用 php 从 SQL 数据库中选择包含特定文本的所有行 [重复]

正则表达式从字符串中提取特定文本[重复]

将 XML 数据提取到 php [重复]

Python帮助-如何从一维数组中提取特定范围的值? [重复]

如何从熊猫框架中的特定列中提取numpy数组并将它们堆叠为单个numpy数组[重复]