注册
登录
提问时间:2018/9/6 16:44:05    楼主:未知网友   阅读量:345

大数据时代来临,网络爬虫也日益火爆,各种爬虫框架也层出不穷,今天我们来看看三款常用的PHP爬虫框架,看看哪种更强大。

一、 phpQuery

优势:类似jquery的强大搜索DOM的能力。 

pq()是一个功能强大的搜索DOM的方法,跟jQuery的$()如出一辙,jQuery的选择器基本上都能使用在phpQuery上,只要把“.”变成“->”,Demo如下(对应我的github的Demo5)

<?php 

 require('phpQuery/phpQuery.php');

 phpQuery::newDocumentFile('http://xxxxxx/'); 

 $menu_a = pq("a"); 

 foreach($menu_a as $a){

    echo pq($a)->html()."<br>";

 } 

 foreach($menu_a as $a){

    echo pq($a)->attr("href")."<br>";

 } 

?>

二、 PHPcrawer

优势:过滤能力比较强。 

官方给的Demo如下(我的github中对应demo4):


<?php 

    include("PHPCrawl/libs/PHPCrawler.class.php");

    class MyCrawler extends PHPCrawler 

    { 

      function handleDocumentInfo(PHPCrawlerDocumentInfo $PageInfo) 

      { // As example we just print out the URL of the document 

        echo $PageInfo->url."<br>"; 

      } 

    }

    $crawler = new MyCrawler(); 

    $crawler->setURL("www.xxxx.com"); 

    $crawler->addURLFilterRule("#\.(jpg|gif)$# i");

    //过滤到含有这些图片格式的URL

    $crawler->go();

 ?>

三、 snoopy

优势:提交表单,设置代理等 

Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单, 

demo如下(对应github中的demo3):


include 'Snoopy/Snoopy.class.php';

$snoopy = new Snoopy();

$url = "http://xxxxxx";

// $snoopy->fetch($url);

// $snoopy->fetchtext($url);//去除HTML标签和其他的无关数据

$snoopy->fetchform($url);//只获取表单

//只返回网页中链接 默认情况下,相对链接将自动补全,转换成完整的URL。

// $snoopy->fetchlinks($url);

var_dump($snoopy->results);