抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐。LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单。

一、Ganon

项目地址: http://code.google.com/p/ganon/

文档: http://code.google.com/p/ganon/w/list

测试:抓取我的网站首页所有class属性值是focus的div元素,并且输出class值

  1. <?php
  2. include \'ganon.php\';
  3. $html = file_get_dom(\'http://www.ido321.com/\');
  4. foreach($html(\'div[class="focus"]\') as $element) {
  5. echo $element->class, "<br>\n";
  6. }
  7. ?>

 

结果:

ganon

二、phpQuery

项目地址:http://code.google.com/p/phpquery/

文档:https://code.google.com/p/phpquery/wiki/Manual

测试:抓取我网站首页的article标签元素,然后出书其下h2标签的html值

  1. <?php
  2. include \'phpQuery/phpQuery.php\';
  3. phpQuery::newDocumentFile(\'http://www.ido321.com/\');
  4. $artlist = pq("article");
  5. foreach($artlist as $title){
  6. echo pq($title)->find(\'h2\')->html()."<br/>";
  7. }
  8. ?>

 

结果:

pq

  三、Simple-Html-Dom

项目地址: http://simplehtmldom.sourceforge.net/
文档: http://simplehtmldom.sourceforge.net/manual.htm

测试:抓取我网站首页的所有链接

  1. <?php
  2. include \'simple_html_dom.php\';
  3. //使用url和file都可以创建DOM
  4. $html = file_get_html(\'http://www.ido321.com/\');
  5.  
  6. //找到所有图片
  7. // foreach($html->find(\'img\') as $element)
  8. // echo $element->src . \'<br>\';
  9.  
  10. //找到所有链接
  11. foreach($html->find(\'a\') as $element)
  12. echo $element->href . \'<br>\';
  13. ?>

 

结果:(截图是一部分)

shd

 

四、Snoopy

项目地址:http://code.google.com/p/phpquery/

文档:http://code.google.com/p/phpquery/wiki/Manual

测试:抓取我的网站首页

  1. <?php
  2. include("Snoopy.class.php");
  3. $url = "http://www.ido321.com";
  4. $snoopy = new Snoopy;
  5. $snoopy->fetch($url); //获取所有内容
  6. echo $snoopy->results; //显示结果
  7. // echo $snoopy->fetchtext ;//获取文本内容(去掉html代码)
  8. // echo $snoopy->fetchlinks($url) ;//获取链接
  9. // $snoopy->fetchform ;//获取表单
  10. ?>

 

结果:

snoopy

 

五、手动编写爬虫

如果编写能力ok,可以手写一个网页爬虫,实现网页抓取。网上有千篇一律的介绍此方法的文章,LZ就不赘述了。有兴趣了解的,可以百度  php 网页抓取。

ps:资源分享

常见的开源爬虫项目请戳:http://blog.chinaunix.net/uid-22414998-id-3774291.html

 

注:原文博客地址 http://www.ido321.com/1158.html

版权声明:本文为zyf1152513214原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zyf1152513214/p/8496170.html