PHP爬⾍最全总结-phpQuery,PHPcrawer,snoopy框架中⽂
介绍
1.⼏种常⽤的PHP爬⾍框架对⽐
1.1 phpQuery
优势:类似jquery的强⼤搜索DOM的能⼒。
pq()是⼀个功能强⼤的搜索DOM的⽅法,跟jQuery的$()如出⼀辙,jQuery的选择器基本上都能使⽤在phpQuery上,只要把“.”变成“->”,Demo如下(对应我的github的Demo5)
<?php
require('phpQuery/phpQuery.php');
phpQuery::newDocumentFile('www.baidu/');
$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>";
}
>
1.2 PHPcrawer
优势:过滤能⼒⽐较强。
官⽅给的Demo如下(我的github中对应demo4)
<?php
jquery框架原理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.baidu");
$crawler->addURLFilterRule("#\.(jpg|gif)$# i");
//过滤到含有这些图⽚格式的URL
$crawler->go();
>
1.3 snoopy
优势:提交表单,设置代理等
Snoopy是⼀个php类,⽤来模拟浏览器的功能,可以获取⽹页内容,发送表单,
demo如下(对应github中的demo3):
include 'Snoopy/Snoopy.class.php';
$snoopy = new Snoopy();
$url = "www.baidu";
// $snoopy->fetch($url);
// $snoopy->fetchtext($url);//去除HTML标签和其他的⽆关数据
$snoopy->fetchform($url);//只获取表单
//只返回⽹页中链接默认情况下,相对链接将⾃动补全,转换成完整的URL。
// $snoopy->fetchlinks($url);
var_dump($snoopy->results);
1.4 phpspider
优势:安装配置到数据库
提供了安装配置,能够直接连接mysql数据库,使⽤也是⽐较⼴泛,这⾥我们暂时不单独介绍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论