使用phpQuery轻松采集Web内容
优采云 发布时间: 2020-08-07 01:07采集标题
首先看一个例子. 现在,我想采集新浪的国内新闻头条. 代码如下:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('http://news.sina.com.cn/china');
echo pq(".blkTop h1:eq(0)")->html();
简单的三行代码即可获取标题内容. 首先将phpQuery.php核心程序收录在该程序中,然后调用以读取目标网页,最后在相应标签下输出内容.
pq()是一种功能强大的方法,就像jQuery的$()一样,jQuery选择器基本上可以在phpQuery上使用,只需更改“”即可. 到“->”. 如上例所示,pq(“. blkTop h1: eq(0)”)捕获其class属性为blkTop的DIV元素,并在DIV中找到第一个h1标签,然后使用html()方法获取h1标签里面的内容(带有html标签)是我们要获取的标题信息. 如果使用text()方法,则只会获得标题的文本内容. 当然,要很好地使用phpQuery,关键是要找到与文档内容相对应的节点.
文章列表采集
下面以另一个示例获取网站的博客列表,请参见代码:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('http://www.helloweba.net/blog.html');
$artlist = pq(".blog_li");
foreach($artlist as $li){
echo pq($li)->find('h2')->html()."<br />";
}
找到文章标题并通过遍历列表中的DIV进行输出就这么简单.
解析XML文档
假设有一个像这样的test.xml文件:
张三
22
王五
18
现在我想获取名为张三的联系人的年龄,代码如下:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('test.xml');
echo pq('contact > age:eq(0)');
结果输出: 22
就像jQuery一样,它很简单,即可准确地找到文档节点,在该节点下输出内容,然后解析XML文档. 现在,您无需使用繁琐的代码(例如常规算法和内容替换)来采集网站内容. 有了phpQuery,一切都会变得更加容易.
项目官方网站地址: