Python反爬虫伪装浏览器进行爬虫

 更新时间:2020年02月28日 13:25:32   作者:Tynam.Yang  
这篇文章主要介绍了Python反爬虫伪装浏览器进行爬虫,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作

简单的直接添加请求头,将浏览器的信息在请求数据时传入:

打开浏览器--打开开发者模式--请求任意网站

如下图:找到请求的的名字,打开后查看headers栏,找到User-Agent,复制。然后添加到请求头中

代码如下:

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)

完整的请求体解释:

以下是笔者访问百度的请求体。

Accept:浏览器端可以接受的媒体类型

Accept-Encoding:浏览器申明自己接收的编码方法

Accept-Language:浏览器申明自己接收的语言

Connection:keep-alive 客户端和服务器之间还在连接中,如果关闭就是close

Host:请求报头域主要用于指定被请求资源的Internet主机和端口号

User-Agent:使用的操作系统和浏览器的名称和版本

Cookie:是用来存储一些用户信息以便让服务器辨别用户身份的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于Python记录一场2023的烟花

    基于Python记录一场2023的烟花

    弹指间,2023已经到来,新的一年,祝大家新年快乐~~~本文将利用Python为大家绘制一个2023的烟花,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01
  • python中关于数据类型的学习笔记

    python中关于数据类型的学习笔记

    在本篇文章里小编给大家整理了关于python中关于数据类型的学习笔记内容,需要的朋友们可以参考下。
    2020-07-07
  • 分布式爬虫scrapy-redis的实战踩坑记录

    分布式爬虫scrapy-redis的实战踩坑记录

    最近用scrapy-redis尝试了分布式爬虫,使用过程中也遇到了不少问题,下面这篇文章主要给大家介绍了关于分布式爬虫scrapy-redis的实战踩坑记录,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 简单的Python抓taobao图片爬虫

    简单的Python抓taobao图片爬虫

    这篇文章主要介绍了简单的Python抓taobao图片爬虫,需要的朋友可以参考下
    2014-10-10
  • python中的数据结构比较

    python中的数据结构比较

    这篇文章主要介绍了python中的数据结构比较,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • matplotlib之Font family [‘sans-serif‘] not found的问题解决

    matplotlib之Font family [‘sans-serif‘] not&nbs

    本文主要介绍了matplotlib之Font family [‘sans-serif‘] not found的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python 比较字典value的最大值的几种方法

    python 比较字典value的最大值的几种方法

    这篇文章主要介绍了python 比较字典value的最大值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • django使用F方法更新一个对象多个对象字段的实现

    django使用F方法更新一个对象多个对象字段的实现

    这篇文章主要介绍了django使用F方法更新一个对象多个对象字段的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python 定时器,实现每天凌晨3点执行的方法

    python 定时器,实现每天凌晨3点执行的方法

    今天小编就为大家分享一篇python 定时器,实现每天凌晨3点执行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 教你Pycharm安装使用requests第三方库的详细教程

    教你Pycharm安装使用requests第三方库的详细教程

    PyCharm安装第三方库是十分方便的,无需pip或其他工具,平台就自带了这个功能而且操作十分简便,今天通过本文带领大家学习Pycharm安装使用requests第三方库的详细教程,感兴趣的朋友一起看看吧
    2021-07-07

最新评论