7

可能的重复:
PHP 中的 HTML 抓取

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

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

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

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

提前致谢 :)

4

4 回答 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**
于 2012-07-19T19:12:24.927 回答
2

你可能想看看

简单的 HTML DOM 库

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

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

于 2012-07-19T19:11:24.547 回答
0
$delements= file_get_html('url will go here'); 

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

    //traverse according to your preferences

} 

//return or output
于 2012-07-19T20:29:48.313 回答
0

你说的是数据抓取:从人类可读的输出中提取数据的行为。在您的情况下,这是<div>标签之间的任何内容。使用PHP DOM的扩展来获取您想要的标签并提取数据。谷歌搜索一个 PHP DOM 教程。

于 2012-07-19T19:31:54.967 回答