Python爬虫

什么是网络爬虫和反爬虫:
• 网络爬虫:使用一些技术手段,大量获取网站数据的一种方式。
• 反爬虫:使用一些技术手段,阻止网络爬虫获取次网站数据的一种方式。
常见的反爬虫机制有哪些:
• 通过use-agent识别爬虫
 有些爬虫的use-agent是特殊的,与正常浏览器的不一样,可通过识别特征use-agent,直接封掉爬虫请求。

• 设置IP访问频率,如果超过一定频率,弹出验证码
 如果输入正确的验证码,则放行,如果没有输入,则拉入禁止一段时间,如果超过禁爬时间,再次出发验证码,则拉入黑名单。当然根据具体的业务,为不同场景设置不同阈值,比如登陆用户和非登陆用户,请求是否含有refer。

• 通过并发识别爬虫
 有些爬虫的并发是很高的,统计并发最高的IP,加入黑名单。

• 请求的时间窗口过滤统计
 爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近10次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。

• 限制单个ip/api token的访问量
 比如10分钟限制访问页面150次,对于抓取用户公开信息的爬虫要格外敏感。

**反爬虫机制的常见方式:
1 设置下载延迟:比如数字设置为10秒,越大越安全。
2优化cookie:cookie最好是登陆获取的,一般访客的cookie,对方限制会比较严格,可以控制一个地区新访客的访问频率。另外反爬统计的js也要分析下,是不是做了机器人判断,有没有做窗口分辨率判断
3 优化user agent:正常的HTTP请求都需要进行ua(User-Agent)优化,因为ua是浏览器标识,如果http请求没有ua,或ua太少,都会被网站运维统计异常的,ua越丰富分布就越真实。
4 使用代理IP池:网络爬虫用户需要大量的IP资源,可以自己购买付费IP业务独享IP,也可以自建IP池。
5 模拟登陆:注意很多网站,可以先用代理ip+ua(ua库随机提取)访问,之后会返回来一个cookie,那ip+ua+cookie就是一一对应的,然后用这个ip、ua和cookie去采集网站,同时能带上Referer,这样效果会比较好

网络爬虫程序的优化策略:
1、注意很多网站,可以先用代理ip+ua(ua库随机提取)访问,之后会返回来一个cookie,那ip+ua+cookie就是一一对应的,然后用这个ip、ua和cookie去采集网站,这样效果会比较好
2、有些网站反爬取的措施应该比较强的。访问之后每次清除缓存,这样能有效规避部分网站的检测;但是有些网站更严格的判断,如果都是新链接从ip发出,也会被判定拒绝(直接403拒绝访问),因此有些爬虫客户会去分析网站的cookies缓存内容,然后进行修改。
3、浏览器的标识(User-Agent)也很重要,用户都是一种浏览器,也是容易判断作弊,要构造不同的浏览器标识,否则容易被判定爬虫。用代理访问之后,浏览器标识需要修改,建议浏览器用phantomjs框架,这个可以模拟其他浏览器的标示,可以通过API接口实现各种浏览器的采集模拟。
4、信息类网站(58、企查查、工商),这类网站主要靠信息提供商业服务,所以反爬措施很严格,非账号(匿名)采集务成正确的cookie和ua,同时限制好频率。建议通过账号登陆来进行采集,这样可以提高采集效率。
5、另外还需要模拟一些用户鼠标行为,这样才能通过这些网站的反爬措施。
7、通过流量统计和日志分析,如果发现单个IP访问、单个session访问、User-Agent信息超出设定的正常频度阈值

好了以上就是今天的知识,希望大家记住,这是基础中的基础。创作不易,大家至少关注一下吧。有疑惑的朋友在评论区询问,我会尽力而答。感兴趣的小伙伴,可以加我QQ群一起学习哦:1084028245。我们下期再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值