使用 PHP 从网页中提取特定数据 [重复]
Posted
技术标签:
【中文标题】使用 PHP 从网页中提取特定数据 [重复]【英文标题】:Extracting specific data from a web page using PHP [duplicate] 【发布时间】:2012-07-19 00:55:31 【问题描述】:我想知道是否有任何方法可以从网页中获取不时使用 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:从人类可读的输出中提取数据的行为。在您的情况下,这是 <div>
标签之间的任何内容。使用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 数据库中选择包含特定文本的所有行 [重复]