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对字典进行排序实例
Sep 25 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
python之Socket网络编程详解
Sep 29 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
python pandas 如何替换某列的一个值
Jun 09 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
python实现括号匹配的思路详解
Aug 23 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
Python 模拟生成动态产生验证码图片的方法
Feb 01 Python
python 爬取小说并下载的示例
Dec 07 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
PHP 强制下载文件代码
2010/10/24 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
js+css简单实现网页换肤效果
2015/12/29 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
学生会个人自荐书范文
2014/02/12 职场文书
个人求职信范文
2014/05/24 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
工作证明格式范文
2015/06/15 职场文书
医德医风学习心得体会
2016/01/25 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
MySQL GRANT用户授权的实现
2021/06/18 MySQL