Python常见反爬虫机制解决方案


Posted in Python onJune 01, 2020

1、使用代理

适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。

这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

proxies = {'http':'http://XX.XX.XX.XX:XXXX'}
Requests:
 import requests
 response = requests.get(url=url, proxies=proxies)
Urllib2:
 import urllib2
 proxy_support = urllib2.ProxyHandler(proxies)
 opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
 urllib2.install_opener(opener) # 安装opener,此后调用urlopen()时都会使用安装过的opener对象
 response = urllib2.urlopen(url)

2、时间设置

适用情况:限制频率情况。

Requests,Urllib2都可以使用time库的sleep()函数:

import time
time.sleep(1)

3、伪装成浏览器,或者反“反盗链”

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还

会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

headers = {'User-Agent':'XXXXX'} # 伪装成浏览器访问,适用于拒绝爬虫的网站
headers = {'Referer':'XXXXX'}
headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'}
Requests:
 response = requests.get(url=url, headers=headers)
Urllib2:
 import urllib, urllib2  
 req = urllib2.Request(url=url, headers=headers)
 response = urllib2.urlopen(req)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python基础入门之seed()方法的使用
May 15 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Python多图片合并PDF的方法
Jan 03 Python
Python元组常见操作示例
Feb 19 Python
python的faker库用法
Nov 28 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
详解Python3 中的字符串格式化语法
Jan 15 Python
Python 实现绘制子图及子图刻度的变换等问题
May 31 Python
Python实现查询剪贴板自动匹配信息的思路详解
Jul 09 Python
解决python运行启动报错问题
Jun 01 #Python
利用python控制Autocad:pyautocad方式
Jun 01 #Python
Python 跨.py文件调用自定义函数说明
Jun 01 #Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 #Python
Python如何在main中调用函数内的函数方式
Jun 01 #Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 #Python
基于Python绘制个人足迹地图
Jun 01 #Python
You might like
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
详解Python验证码识别
2016/01/25 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
python 如何实现遗传算法
2020/09/22 Python
python 动态绘制爱心的示例
2020/09/27 Python
波兰补充商店:Muscle Power
2018/10/29 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
人力资源管理毕业生自荐信
2013/11/21 职场文书
横幅标语大全
2014/06/17 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
市场营销计划书
2019/04/24 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS