研究搜索引擎获取搜索结果

测试a.

http://www.yahoo.cn/s?q=%E7%91%9C%E4%BC%BD%20E-mail&page=1

不能参数page的值取多少,运行程序所得到的实际结果依然是第一页的内容。
故无法使用yahoo搜索


测试b.

http://www.baidu.com/s?wd=%E7%91%9C%E4%BC%BD%20E-mail&cl=3&pn=20&ie=utf-8&usm=2
修改参数pn的值(20为从滴二十条记录开始,即第二页),即可依次获取所有结果。

故程序可以使用这种方法利用baidu获取搜索结果。


测试c.

ajax....google...,此种方法不知道如何获取到下一页结果(估计google不会提供这种接口的)

故此路不通


测试d.

直接使用google, 过程未记录. 结果可能是,直接仿制google主页的url方式,程序每次访问的结果都是google知道这不是人做的(所以返回的是错误页面);有一种url可以获取到google搜索结果,但是和百度一样会遭遇防御系统(也是验证码)。并且google还会经常无法访问(被限制)。

故google路几乎不通了


测试e.

搜狗,使用程序获取搜狗的搜索结果,当你试图访问第二页及之后的页面结果时,搜狗返回给你的依然是第一页结果。

(搜狗有点低调,没转到防御系统,但低调的告诉你,这样我不给结果哦)

故搜狗路也不通


可以想象,搜索引擎防御系统,应该是在服务器上给每个独立ip(我接入互联网的ip)一个可以反映频率的计数器,来确定该ip是否该将ip重定向到防御系统(verify.baidu.com)。暂时不做深入研究,只选择不做任何处理能直接使用的方案。


当然了,还有个方式:可以自己做一个爬虫,在各大有名站点上爬,获取自己感兴趣的特定信息,这样流量可能并不会很大,但主动权很高。


按照测试b的思路写代码,且在每20次访问后,sleep50秒。sleep之后可以部分恢复到一开始访问成功的比例数,如果不sleep不成功数几乎是很大很大(一直不成功)。

但是运行这样的程序可知:访问不成功(被转到http://verify.baidu.com,这个应该就是百度防御)的比例大约是90%,且粗略一看不成功访问数貌似是按照等差数列的形式(是否的确是等差数列不太确定)。且百度给出的结果数目,在所有结果页面中,等到大约第70页后,基本都是和之前的页面是重复信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值