使用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,一切都会变得更加容易.

  项目官方网站地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线