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程序员开发中常犯的10个错误
Jul 07 Python
python分析网页上所有超链接的方法
May 08 Python
利用Python进行异常值分析实例代码
Dec 07 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
python代码区分大小写吗
Jun 17 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
浅析python实现动态规划背包问题
Dec 31 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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脚本中include文件出错解决方法
2008/11/20 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
php浏览历史记录的方法
2015/03/10 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python实现K最近邻算法
2018/01/29 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
flask中的wtforms使用方法
2018/07/21 Python
python函数的万能参数传参详解
2019/07/26 Python
python修改FTP服务器上的文件名
2019/09/11 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
军训心得体会
2013/12/31 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫