您的位置:新闻资讯 >文章内容
Python爬虫有哪些策略可以对抗反爬虫
来源:本站 作者:jinglingdaili 时间:2019-03-07 17:44:21

作为爬虫工程师,时常要为不断更新的反爬虫策略而苦恼,究竟是魔高一尺道高一丈,还是道高一尺魔高一丈,从来就没有真正的分出过胜负,一个为了完成爬虫工作,一个为了保卫网站不被爬虫入侵,进行了一场持久抗战。


爬虫


对于Python爬虫来说,有哪些常见的反反爬策略呢?


一、设置等待时间


很多反爬策略都包含了检测访问频率,一旦发现了超人类访问速度,坚决封杀,既然如此,那就模仿人工访问频率,访问一次,歇一会儿。


1、显性等待时间


import time#导入包time.sleep(3)#设置时间间隔为3秒


2、隐式等待时间


wait1.until(lambda driver: driver.find_element_by_xpath("//div[@id='link-report']/span"))


二、修改请求头


识别是机器人还是浏览器浏览的一个重要依据就是User-Agent,不同的浏览器有不同的User-Agent。


import urllib2req=urllib2.Request(url)#多了以下一这一步而已


req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')response=urllib2.urlopen(req)


三、使用代理IP


当拥有足够多的代理IP后,就不在乎被对方封杀IP了,封了一个IP,还有千千万万个IP,无所畏惧。


# -*- coding: utf-8 -*-


import urllib2


url=" www.ip181.com/"proxy_support=urllib2.ProxyHandler({'http':'121.40.108.76'})


#参数是一个字典{'类型':'代理ip:端口号'}


opener=urllib2.build_opener(proxy_support)


#定制opener


opener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]


#add_handler给加上伪装


urllib2.install_opener(opener)response=urllib2.urlopen(url)print response.read().decode('gbk')


四、进行模拟登陆


一般用Selenium,可以结合Firefox或者是无头浏览器PhantomJS,这个做的东西比较多了。


在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961