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实现partial改变方法默认参数
Aug 18 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
python实现SOM算法
Feb 23 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
Python常用数据分析模块原理解析
Jul 20 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 Python
详解Python为什么不用设计模式
Jun 24 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
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python实现移位加密和解密
2019/03/22 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
优秀家长自荐材料
2014/08/26 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
转让协议书范本
2014/09/13 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL