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的判断语句模拟三目运算
Apr 24 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
对Python中plt的画图函数详解
Nov 07 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
python对常见数据类型的遍历解析
Aug 27 Python
python对文件的操作方法汇总
Feb 28 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
Python中tkinter的用户登录管理的实现
Apr 22 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
PHP6 mysql连接方式说明
2009/02/09 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
js简易版购物车功能
2017/06/17 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
python中map()函数的使用方法示例
2017/09/29 Python
浅谈Django REST Framework限速
2017/12/12 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python保存文件方法小结
2018/07/27 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python使用requests.session模拟登录
2019/08/09 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
python链表类中获取元素实例方法
2021/02/23 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
股东协议书范本
2014/04/14 职场文书
师恩难忘教学反思
2014/04/27 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
艺术节开幕词
2015/01/28 职场文书