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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python中尝试多线程编程的一个简明例子
Apr 07 Python
Python中random模块用法实例分析
May 19 Python
Python计算两个日期相差天数的方法示例
May 23 Python
Python读取指定日期邮件的实例
Feb 01 Python
Python后台开发Django会话控制的实现
Apr 15 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
Django重设Admin密码过程解析
Feb 10 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
用Python实现屏幕截图详解
Jan 22 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
JAVA/JSP学习系列之四
2006/10/09 PHP
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
python实现滑雪者小游戏
2020/02/22 Python
Python中SQLite如何使用
2020/05/27 Python
python之语音识别speech模块
2020/09/09 Python
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
自我评价的范文
2014/02/02 职场文书
火车来了教学反思
2014/02/11 职场文书
八一建军节感言
2014/02/28 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
村干部任职承诺书
2015/01/21 职场文书