爬虫:学习笔记之常见反爬虫策略及应对技巧
发布日期:2021-06-30 15:42:15 浏览次数:2 分类:技术文章

本文共 1133 字,大约阅读时间需要 3 分钟。

本文是我在使用网易云课堂学习日月光华老师讲的“Python爬虫零基础入门到进阶实战”课程所做的笔记,如果大家觉得不错,可以去看一下老师的视频课,讲的还是很棒的。

常见反爬虫策略:
一、通过Headers反爬虫
二、基于用户行为反爬虫
三、动态页面反爬虫
四、Else
应对反爬虫的方法:
1、设置Headers
2、使用IP代理或加大请求间隔时间
3、使用Selenium框架

1. 通过识别用户代理(Headers) 反爬虫

应对:设置Headers(User-Agent)。基本所有的爬虫都要设置Headers,不然很容易被反爬虫识别。

2. 基于用户行为反爬虫

检测用户行为,比如短时间快速爬取

应对:使用或加大请求间隔时间,如果请求间隔时间固定,有可能也会被检查出来。

2.1 代理IP

所谓代理IP,就是代理用户去取得网络信息的IP地址。代理IP可以帮助爬虫掩藏真实身份,突破IP访问限制,隐藏爬虫的真实IP,从而避免被网站反爬虫禁止。

2.2 Requests中使用代理IP的方法

在get方法中加入proxies属性。

代理IP组成的字典{
              请求方式:代理IP地址
}
ps:字典小知识:字典用键值对存储数据,如果多个key名相同,那么最后一个有效。
因此,如果代理IP地址很多,可以每一个代理IP设置为一个字典,最后所有的代理IP设置为一个列表,从列表中随机获取。

import requestsproxies = {
# :后面为端口 "http": "http://27.152.90.179:9999", "https": "1.197.16.144:9999",}requests.get("http://example.org",proxies=proxies)

2.3 如何获得代理IP

  1. 使用免费代理IP
    从实用性、稳定性以及安全性来考虑,不推荐使用免费的代理IP。
  2. 购买代理IP

2.4 代理IP使用

import requestsproxies = {
# :后面为端口 'http': 'http://123.169.101.109:9999',}print(requests.get('https://jsonip.com', proxies=proxies).json())

执行结果:

在这里插入图片描述

3. 动态网页面反爬虫

动态网页很多东西由JavaScript生成,通过Ajax请求得到数据。

应对:使用Selenium框架,该框架可以模拟人的操作,打开浏览器。用浏览器请求。

4. Eles

比如:使用cookies反爬虫。

应对:第一次访问后设置cookies,后续访问设置cookie。

转载地址:https://kaisarh.blog.csdn.net/article/details/102978749 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:实战爬虫:python爬虫学习笔记之爬取搜狗|微信文章——动态网页爬取
下一篇:爬虫:python爬虫学习笔记之网站保持登录机制及简单验证码处理

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月14日 13时08分01秒