Python反爬虫伪装浏览器进行爬虫


Posted in Python onFebruary 28, 2020

对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作

简单的直接添加请求头,将浏览器的信息在请求数据时传入:

打开浏览器--打开开发者模式--请求任意网站

如下图:找到请求的的名字,打开后查看headers栏,找到User-Agent,复制。然后添加到请求头中

Python反爬虫伪装浏览器进行爬虫

代码如下:

import requests
url = 'https://www.baidu.com'
headers ={
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36'
    }
rq = requests.get(url=url, headers=headers)
print(rq.text)

更深的伪装浏览器,添加多个浏览器信息,每次请求的时候随机发送浏览器信息,让服务器了解不是一个浏览器一直在访问,(可以百度查找user-agent)

代码如下:

import requests
import random

url = 'https://www.baidu.com'
headers_lists =(
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
           'Chrome/65.0.3325.181 Safari/537.36',
    'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Maxthon2.0',
    'Opera/9.80(Android2.3.4;Linux;Operamobi/adr-1107051709;U;zh-cn)Presto/2.8.149Version/11.10',
    'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1',
    'Mozilla/5.0(Android;Linuxarmv7l;rv:5.0)Gecko/Firefox/5.0fennec/5.0',)

rq = requests.get(url=url,headers={'User-Agent':random.choice(headers_lists)})
print(rq.text)

完整的请求体解释:

以下是笔者访问百度的请求体。

Python反爬虫伪装浏览器进行爬虫

Accept:浏览器端可以接受的媒体类型

Accept-Encoding:浏览器申明自己接收的编码方法

Accept-Language:浏览器申明自己接收的语言

Connection:keep-alive 客户端和服务器之间还在连接中,如果关闭就是close

Host:请求报头域主要用于指定被请求资源的Internet主机和端口号

User-Agent:使用的操作系统和浏览器的名称和版本

Cookie:是用来存储一些用户信息以便让服务器辨别用户身份的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断windows隐藏文件的方法
Mar 21 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
详解Python发送email的三种方式
Oct 18 Python
python如何实现代码检查
Jun 28 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
在Keras中CNN联合LSTM进行分类实例
Jun 29 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
Python: glob匹配文件的操作
Dec 11 Python
使用wxpy实现自动发送微信消息功能
Feb 28 #Python
解决ROC曲线画出来只有一个点的问题
Feb 28 #Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 #Python
利用python画出AUC曲线的实例
Feb 28 #Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 #Python
AUC计算方法与Python实现代码
Feb 28 #Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 #Python
You might like
PHP浮点数的一个常见问题
2016/03/10 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
js 编写规范
2010/03/03 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
Python中的下划线详解
2015/06/24 Python
Python IDLE入门简介
2017/12/08 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Python中print和return的作用及区别解析
2019/05/05 Python
Python 串口读写的实现方法
2019/06/12 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
使用python实现画AR模型时序图
2019/11/20 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
销售找工作求职信
2013/12/20 职场文书
团队精神口号
2014/06/06 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
小学教研工作总结2015
2015/05/13 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
话题作文之关于呼唤
2019/11/29 职场文书