snoopy——PHP版的网络客户端

magpierss中就用到了snoopy,这让我有点兴趣去研究下这个咚咚。再SF上,找到了这个源代码。居然就是一个类,但不要笑看哦,功能可是很强大的。

     官方的简介, snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
    下面是它的一些特征:
1、方便抓取网页的内容
2、方便抓取网页的文字(去掉HTML代码)
3、方便抓取网页的链接
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies

下面是简单的例子,比如说我们抓取我的blog的文字

 
 

^_^,不错把,在比如抓取链接


嘿嘿,效果不错把,而且全部都是我们需要的url,而没有那种/blog/read.php/85.htm那种东西。
snoopy更新了(已经两年没有更新了)。snoopy的地址是
http://sourceforge.net/projects/snoopy/。虽然只是更新到1.2.4(之前是1.2.1),也只是修正了一些小的BUG,但很高兴,作者又开始回来关注这个了。

      snoopy是个非常好用的类,在PHP抓取中用的非常广。

 

/* update at 2009-03-23*/  

 

在项目应用过程中,发现了一个BUG,那就是用$snoopy->fetch()来抓取百度图片搜索时,因为百度默认是每页显示20张图片,可以通过rn这个参数来指定每页显示多少张图片,例如,http://image.baidu.com/i?tn=baiduimage&ct=201326592&cl=2&lm=-1&pv=&word=star&z=0&rn=2,在用$snoopy->fetch()中rn并没有起作用,不过rn等于什么值,它抓取出来的还是每页20张图片。

为了兼容,我自己把snoopy的fetch($url)多加了个参数,具体如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值