Python爬虫从0到1(第十一天)——反爬入门

一、反爬与反反爬

1.1 反爬的类型
  • 信息校验型:例如用户身份的验证
  • 动态渲染型:动态数据
  • 文本混淆型:字体加密、CSS偏移反爬
  • 特征识别型:爬虫特征
1.2 反反爬的介绍

反反爬的主要思路->尽可能的去模拟浏览器对服务器发起请求,浏览器中认为如何操作,代码中就如何去实现。

例如:浏览器中先请求了url1,然后获取到服务器返回的cookie保存在本地,然后再去请求url2,此时就会带上url1返回的cookie进行请求,如果没有携带这个cookie就会请求失败

1.2.1 请求头参数验证
1.2.1.1 通过User-Agent字段来反爬
  • 反爬原理:默认情况下,通过requests库发起请求的时候是没有User-Agent字段的,因此服务器直接认出了我们的爬虫(裸奔)
  • 解决办法:在请求之前,将User-Agent封装到请求头中进行请求,最好是搭建一个UA池
1.2.1.2 referer字段验证
  • 反爬原理:默认情况下并没有携带referer字段
  • 解决办法:添加referer字段(例如B站评论、腾讯课堂评论)
1.2.1.3 cookie验证
  • 反爬原理:服务器通过cookie来验证用户的身份是否是正常访问用户身份,通过为访问用户设定一定的特征参数实现,如果目标网站并不需要登录,那么只需要带上上一次返回的cookie进行请求即可,使用session最佳
  • 解决办法:携带着网站中返回的cookie进行访问,如果网站需要登录,那么通过搭建账号池来进行请求,或者通过账号池进一步搭建cookie池
1.2.2 通过js来反爬

正常情况下,浏览器会自动运行服务器返回的js代码,然后将js代码执行后的结果进行渲染后显示在浏览器中,所以,就目前市场上存在的网站而言,基本上99%的网站的页面都是经过了js渲染之后的结果。

1.2.2.1 通过js实现数据的加密
  • 反爬原理:通过js代码将数据或者需要验证的参数进行加密
  • 解决办法:模拟数据或参数的加密

二、MD5与base64加密介绍(js常见加密)

Hash,译做“散列”,也有直接音译为“哈希”的。把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值。该算法就是哈希函数,也称摘要函数。

MD5的固定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quanmoupy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值