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在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
详解Python二维数组与三维数组切片的方法
Jul 18 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python数据可视化图实现过程详解
Jun 12 Python
python logging模块的使用详解
Oct 23 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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
php5数字型字符串加解密代码
2008/04/24 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python 命令行非阻塞输入的小例子
2013/09/27 Python
python求pi的方法
2014/10/08 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
本科生详细的自我评价
2013/09/19 职场文书
工作求职信
2014/07/04 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
岗位聘任协议书
2015/09/21 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书