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中字符串的处理技巧分享
Sep 17 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
Python字符串的一些操作方法总结
Jun 10 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 Python
Python实战实现爬取天气数据并完成可视化分析详解
Jun 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中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
如何在PHP中使用数组
2020/06/09 PHP
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
Javascript学习指南
2014/12/01 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
Python中方法链的使用方法
2016/02/23 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
Python何时应该使用Lambda函数
2019/07/02 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
super关键字的用法
2012/04/10 面试题
企业出纳岗位职责
2014/03/12 职场文书
经销商订货会主持词
2014/03/27 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
党员四风剖析材料
2014/08/27 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL