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 中的 else详解
Apr 23 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python中模块查找的原理与方法详解
Aug 11 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
Python中turtle库的使用实例
Sep 09 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
python实现同一局域网下传输图片
Mar 20 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
python基础之错误和异常处理
Oct 24 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
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
python列表操作实例
2015/01/14 Python
python代码实现ID3决策树算法
2017/12/20 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python连接mongodb密码认证实例
2018/10/16 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
初中团支书竞选稿
2015/11/21 职场文书
初中思想品德教学反思
2016/02/24 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
解析Java中的static关键字
2021/06/14 Java/Android
MySQL分区表管理命令汇总
2022/03/21 MySQL
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫