如何使用PHP和DOM文档获取特定内容?

时间:2009-09-15 19:34:04

标签: php dom screen-scraping

我有一个我想抓住的网址。我只想要一小段内容。有问题的内容位于ID为sample的div中。

<div id="sample">
   Content
</div>

我可以像这样抓取文件:

$url= file_get_contents('http://www.example.com/');

但我如何选择该样本div。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我建议使用PHP Simple HTML DOM Parser

然后你可以这样做:

$html = file_get_html('http://www.example.com/');
$html->find('div[#sample]', 0);

答案 1 :(得分:1)

我会推荐类似Simple HTML DOM的内容,但如果你非常确定格式,你可能希望使用正则表达式来提取你想要的数据。

答案 2 :(得分:0)

不久前,我发布了一个名为PHPPowertools/DOM-Query的开源库,它允许您(1)加载HTML文件,然后(2)选择或更改HTML的部分内容,就像你做的那样用jQuery。

使用该库,以下是您为示例选择示例div的方法:

use \PowerTools\DOM_Query;

// Get file content
$htmlcode = file_get_contents('http://www.example.com/');

// Create a new DOM_Query object
$H = new DOM_Query($htmlcode);

// Find the elements that match selector "div#sample"
$s = $H->select('div#sample');