伪装豆瓣爬虫程序——如何解决豆瓣禁用爬虫程序?

最近因为业务需要,要将豆瓣上的图书以及影视信息抓取下来,网页抓取其实很简单,很快就完成,但是系统还没上线就发现了问题,豆瓣会根据请求分析客户的行为,判断是否是机器人,如果判断为机器人,将要求输入验证码,最终导致抓取不到数据。

要解决这个问题,主要就两个思路,一个是识别验证码,当要求输入验证码时,识别图片中的验证码;另外一方案是伪装成正常访问,绕过豆瓣的分析程序。前一种方案受限于验证码识别率太低,很难满足需求,最终只能考虑第二种方案了。

通过分析豆瓣的分析判断机器人的实际情况,发现豆瓣是根据ip以及cookie信息统计访问频率来确定是否为“机器人”,有以下几种实际情况,1.不带cookie信息访问,快速访问一段时间,ip会被禁掉;2.带cookie访问,快速访问一段时间,请求会被禁掉,这时候清掉cookie,可以恢复正常访问。基于这个测试结果,可以采用一个简单的方案:

       1.第一次请求没有cookie信息,但记录下返回的cookie.

       2.后面每个请求都带上这个cookie信息.

       3.如果请求被跳转到验证码页面,就不带cookie重试,并记录返回的cookie信息

       4.下一次请求带上新的cookie信息。

重复2到4步骤。

 

       代码:

       1.简单的cookie manager:

import java.io.Serializable;
import java.util.Map;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值