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基础教程之字典操作详解
Mar 25 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
python异步存储数据详解
Mar 19 Python
python 获取等间隔的数组实例
Jul 04 Python
linux环境中没有网络怎么下载python
Jul 07 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
python实现的生成word文档功能示例
Aug 23 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
py-charm延长试用期限实例
Dec 22 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
Django models filter筛选条件详解
Mar 16 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
PHP生成plist数据的方法
2015/06/16 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
python requests.post带head和body的实例
2019/01/02 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
中专生职业生涯规划书范文
2014/01/10 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
家长对老师的感言
2014/03/11 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书