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的time模块中的常用方法整理
Jun 18 Python
python获取元素在数组中索引号的方法
Jul 15 Python
Tensorflow简单验证码识别应用
May 25 Python
Python使用django搭建web开发环境
Jun 09 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
解析Python3中的Import
Oct 13 Python
Python实现屏幕录制功能的代码
Mar 02 Python
iPython pylab模式启动方式
Apr 24 Python
Python Dataframe常见索引方式详解
May 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
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
python 上下文管理器使用方法小结
2017/10/10 Python
Python笔记之facade模式
2019/11/20 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
读书小明星事迹材料
2014/05/03 职场文书
公司会议策划方案
2014/05/17 职场文书
公证委托书标准格式
2014/09/11 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
务虚会发言材料
2014/12/25 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
2016年教师节感言
2015/12/09 职场文书