PHP用标签抓取html页面内容


PHP Scrape html page content with tags

来自原始网页的代码

<html>
<div class="clear"></div>
<div class="slider">
<ul>  
<li>
<a title="title1" href="http://www.link.com" >
<img  title="title1"  alt=""  src="http://www.link.com/1.jpg"  /></a>
</li>
<li>
<a title="title2" href="http://www.link.com" >
<img  title="title2"  alt=""  src="http://www.link.com/2.jpg"  /></a>
</li>
</ul>
</div>
<div class="clear"></div>
</html>

我想提取下面的细节(带标签)与下面的相同

<div class="slider">
<ul>  
<li>
<a title="title1" href="http://www.link.com" >
<img  title="title1"  alt=""  src="http://www.link.com/1.jpg"  /></a>
</li>
<li>
<a title="title2" href="http://www.link.com" >
<img  title="title2"  alt=""  src="http://www.link.com/2.jpg"  /></a>
</li>
</ul>
</div>

检查了之前发布的许多问题,但我找不到类似的问题,所以请有人帮我解决。

感谢

要正确地废弃它们,您需要PHP的DOMDOcument扩展的DOMDocument::loadHTML()DOMDocument::getElementsByTagName()DomNode::attributes()DOMNode::getNamedItem()函数。

要操作HTML,最好不要使用像preg_replace这样的正则表达式。为什么?请参阅此问题。您可以使用phpQuery作为HTML解析器。

使用以下命令安装它(您需要pear):

pear channel-discover phpquery-pear.appspot.com  
pear install phpquery/phpQuery 

安装后,您可以执行以下操作:

<?php
$html = file_get_contents("http://www.your-url.com/");
$pq = phpQuery::newDocumentHTML($html);
echo $pq['.slider']; // Output the contents of tags with class="slider"

有关更多示例代码和文档,请访问phpQuery网页

编辑:

如果你想使用另一个HTML解析解决方案,你可以看看如何在PHP中解析和处理HTML/XML?