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中的ceil()方法使用教程
May 14 Python
Python 性能优化技巧总结
Nov 01 Python
Python简单的制作图片验证码实例
May 31 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
Python切片索引用法示例
May 15 Python
matplotlib给子图添加图例的方法
Aug 03 Python
Python魔法方法功能与用法简介
Apr 04 Python
简单介绍python封装的基本知识
Aug 10 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
Python hashlib模块实例使用详解
Dec 24 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 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定时计划任务的实现方法详解
2013/06/06 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
总结js函数相关知识点
2018/02/27 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
python解析文件示例
2014/01/23 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
应届生护士求职信
2013/11/01 职场文书
六十大寿答谢词
2014/01/12 职场文书
党员政治学习材料
2014/05/14 职场文书
农村党员干部承诺书
2015/05/04 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
Python中的套接字编程是什么?
2021/06/21 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL