当前位置:首页 > PHP教程 > php应用 > 列表

几种PHP实现网页抓取的程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-09 13:45:42 浏览: 评论:0 

网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看.

抓取某一个网页中的内容,需要对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.111cn.net/'); 
  4.  foreach($html('div[class="focus"]'as $element) { 
  5.    echo $element->class"<br>n";  
  6.  } 
  7. ?> 

二、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.phpfensi.com/');  
  4. $artlist = pq("article");  
  5. foreach($artlist as $title){  
  6.    echo pq($title)->find('h2')->html()."<br/>";  
  7. }  //开源软件:phpfensi.com 
  8. ?> 

三、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.phpfensi.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. ?>

四、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.phpfensi.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. ?> 

五、手动编写爬虫

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

Tags: PHP网页抓取 PHP抓取网页

分享到: