python反扒机制的5种解决方法


Posted in Python onFebruary 06, 2021

前言

反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种,一般情况下除了百度等网站,反扒机制会常常更新以外。为了保持网站运行的高效,网站采取的反扒机制并不是太多,今天分享几个我在爬虫过程中遇到的反扒机制,并简单介绍其解决方式。

基于User-Agent反爬

简介:服务器后台对访问的User_Agent进行统计,单位时间内同一User_Agent访问的次数超过特定的阀值,则会被不同程度的封禁IP,从而造成无法进行爬虫的状况。

解决方法:

一 . 将常见的User-Agent放到ua_list中,以列表形式进行随机使用

代码示例:

python反扒机制的5种解决方法

二. 加载fake_useragent库,随机生成User-Agent添加到headers中

代码示例:

python反扒机制的5种解决方法

2 基于IP反爬

简介: 爬虫程序可能会在短时间内对指定的服务器发起高频的请求。后台服务器对访问进行统计,单位时间内同一IP访问的次数超过一个特定的值(阀值),就会不同程度的禁封IP,导致无法进行爬虫操作。

解决方法:使用代理池,并设定延迟访问

如何获取代理服务器?免费:西祠代理、快代理、goubanjia 收费:代理精灵等

代码示例:

python反扒机制的5种解决方法

3 基于cookie反扒

简介:网站会通过cookie跟踪你的访问过程,如果发现有爬虫行为会立刻中断你的访问,比如特别快的填写表单,或者短时间内浏览大量页面。而正确地处理cookie,又可以避免很多采集问题,建议在采集网站过程中,检查一下这些网站生成的cookie,然后想想哪一个是爬虫需要处理的。

解决方法:

一 手动处理

将cookie封装到headers字典中,将该字典作用到get/post方法的headers参数中

二 自动处理

需要两次处理。第一次是为了捕获和存储cookie到session对象中,第二次就是用携带cookie的session进行请求发送,这次请求发送就是携带cookie发起的请求。可以跟requests一样调用get/post进行请求的发送。在使用session进行请求发送的过程中,如果产生了cookie,则cookie会被自动存储session对象中

代码示例:

#基于session自动处理
cookiesess = requests.Session() 
#该次请求只是为了捕获cookie存储到sess中
sess.get(url='https://xueqiu.com/',headers=headers)
url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20367942&count=15&category=-1'
json_data = sess.get(url=url,headers=headers).json()json_data

4 图片懒加载

简介:图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间。为了解决这种问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏图片请求数的技术就被称为“图片懒加载”。在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original......)去存放真正的图片链接而并非是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。

解决方法:通过细致观察页面的结构,发现图片的链接真正链的伪属性中,一般不在src中,而是src2中,xpath要使用该属性

示例代码:

python反扒机制的5种解决方法

5 Ajax动态加载

简介:从网页的 url 加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载出更多的内容,并把这些内容传输到网页中。这就是为什么有些网页直接爬它的URL时却没有数据的原因。现在这样的网站也越来越多。
解决方法:使用审查元素分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制Request URL),循环过程。如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。对返回的json使用requests中的json进行解析,观察动态加载的规律,在请求头中对规律进行使用

抓包工具推荐:fiddler

到此这篇关于python反扒机制的5种解决方法的文章就介绍到这了,更多相关python反扒机制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现udp数据报传输的方法
Sep 26 Python
Python实现从百度API获取天气的方法
Mar 11 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
python学生管理系统
Jan 30 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
Python实现括号匹配方法详解
Feb 10 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
python实现快递价格查询系统
Mar 03 Python
python怎么自定义捕获错误
Jun 29 Python
Django日志及中间件模块应用案例
Sep 10 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 #Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 #Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 #Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 #Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 #Python
Python第三方库安装缓慢的解决方法
Feb 06 #Python
python中threading和queue库实现多线程编程
Feb 06 #Python
You might like
PHP4实际应用经验篇(4)
2006/10/09 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
使用Pycharm分段执行代码
2020/04/15 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
法学院方阵解说词
2014/01/29 职场文书
七年级政治教学反思
2014/02/03 职场文书
企业文化理念标语
2014/06/10 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python