爬虫过程中加上这些策略让你采集效率更高


我们都知道在采集数据过程中,尤其是爬取大量数据的时候,很多网站都有反爬虫措施,封 ip是很严重的,,让你在采集的时候很心烦。本文就如何解决这个问题总结出一些应对措施,这些措施可以单独使用,也可以同时使用,效果更好。

、伪造 User-Agent

在请求头中把 User-Agent 设置成浏览器中的 User-Agent ,来伪造浏览器访问。比如:

headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}

resp = requests.get(url,headers = headers)

在每次重复爬取之间设置一个随机时间间隔

# 比如:

time.sleep(random.randint(0,3))  # 暂停 0~3 秒的整数秒,时间区间: [0,3]

# 或:

time.sleep(random.random())  # 暂停 0~1 秒,时间区间: [0,1)

而且最主要的是 ua 要越多越好,不要固定的使用那几个,要经常更换最新真实的 ua

二、 伪造 cookies

若从浏览器中可以正常访问一个页面,则可以将浏览器中的 cookies 复制过来使用,比如:

cookies = dict(uuid='b18f0e70-8705-470d-bc4b-09a8da617e15',UM_distinctid='15d188be71d50-013c49b12ec14a-3f73035d-100200-15d188be71ffd')

resp = requests.get(url,cookies = cookies)

# 把浏览器的 cookies 字符串转成字典

def cookies2dict(cookies):

    items = cookies.split(';')

    d = {}

    for item in items:

        kv = item.split('=',1)

        k = kv[0]

        v = kv[1]

        d[k] = v

return d

注:用浏览器 cookies 发起请求后,如果请求频率过于频繁仍会被封 IP ,这时可以在浏览器上进行相应的手工验证(比如点击验证图片等),然后就可以继续正常使用该 cookies 发起请求。

三、 使用代理

可以换着用多个代理 IP 来进行访问,防止同一个 IP 发起过多请求而被封 IP ,比如:

  # 要访问的目标页面

        targetUrl = "http://httpbin.org/ip"

 

         # 要访问的目标HTTPS页面

         # targetUrl = "https://httpbin.org/ip"

 

         # 代理服务器

        proxyHost = "t.16yun.cn"

        proxyPort = "31111"

 

         # 代理隧道验证信息

        proxyUser = "username"

        proxyPass = "password"

 

        proxyMeta = "http:// %(user)s : %(pass)s @ %(host)s : %(port)s "  % {

             "host"  : proxyHost,

             "port"  : proxyPort,

             "user"  : proxyUser,

             "pass"  : proxyPass,

        }

 

         # 设置 http和https访问都是用HTTP代理

        proxies = {

             "http"   : proxyMeta,

             "https"  : proxyMeta,

        } (这里是用的亿牛云的动态转发代理进行示例)

不管我们采集什么网站的数据,光有代理是不行的,要配合多种反爬策略一起才能更高效的获取大量的数据。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31522063/viewspace-2640290/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31522063/viewspace-2640290/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值