zoukankan      html  css  js  c++  java
  • 对于反爬虫伪装浏览器进行爬虫

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

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

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

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

    代码如下:

    1 import requests
    2 
    3 url = 'https://www.baidu.com'
    4 headers ={
    5         'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
    6                      'Chrome/65.0.3325.181 Safari/537.36'
    7         }
    8 rq = requests.get(url=url, headers=headers)
    9 print(rq.text)

    更深的伪装浏览器,添加多个浏览器信息,每次请求的时候随机发送浏览器信息,让服务器了解不是一个浏览器一直在访问,(可以百度查找user-agent)

    代码如下:

     1 import requests
     2 import random
     3 
     4 url = 'https://www.baidu.com'
     5 headers_lists =(
     6         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
     7                      'Chrome/65.0.3325.181 Safari/537.36',
     8         'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Maxthon2.0',
     9         'Opera/9.80(Android2.3.4;Linux;Operamobi/adr-1107051709;U;zh-cn)Presto/2.8.149Version/11.10',
    10         'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1',
    11         'Mozilla/5.0(Android;Linuxarmv7l;rv:5.0)Gecko/Firefox/5.0fennec/5.0',)
    12 
    13 rq = requests.get(url=url,headers={'User-Agent':random.choice(headers_lists)})
    14 print(rq.text)

    完整的请求体解释:

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

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

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

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

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

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

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

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

  • 相关阅读:
    Java--NIO(一)
    Jackson
    SpringBoot整合Redis作为缓存
    RabbitMq学习笔记——配置
    RabbitMq学习笔记——概念
    利用gsoap工具,通过wsdl文件生成webservice的C++工程文件
    QThreadPool&QRunnable&类函数的使用
    C++构造函数初始化列表与构造函数中的赋值的区别
    Qt 4.8.2.+VS2008静态编译
    Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题
  • 原文地址:https://www.cnblogs.com/tynam/p/8809222.html
Copyright © 2011-2022 走看看