失败了n次以后,我总结了5种爬虫伪装技巧!

安全 应用安全
爬虫伪装的最高境界就是用代码模拟人的真实操作,因为网站设计出来就是为了让别人访问的,掌握爬虫的伪装技巧,能够让大大提高我们爬虫的成功率。

[[399747]]

大家好,我是鸟哥,今天给大家聊一聊爬虫。

爬虫伪装的最高境界就是用代码模拟人的真实操作,因为网站设计出来就是为了让别人访问的,掌握爬虫的伪装技巧,能够让大大提高我们爬虫的成功率。

结合自身的经验,给大家介绍5种爬虫伪装的技巧,并把代码模板奉上,希望能够对你有所帮助。

1.浏览器伪装

因为网站服务器能够很轻易的识别出访问的来源浏览器,以requests请求为例,默认header头数据中没有浏览器信息,在与浏览器交互时简直就是“裸奔”,所以我们可以加入“User-Agent”信息伪装成真实浏览器,代码如下:

  1. import requests  
  2. headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'}  #模拟成火狐浏览器 
  3. response = requests.get("http://www.baidu.com",headers=headers)  #模拟请求url 

2.访问地址伪装

访问地址指的是headers头部中的reffer信息,那么它有什么作用呢?举个例子解释一下:

我在https://bj.meituan.com/里有一个https://waimai.meituan.com/链接,那么点击这个https://waimai.meituan.com/,它的header信息里就有:Referer=https://bj.meituan.com/

那么可以利用这个来防止盗链,比如我只允许我自己的网站访问我自己的图片服务器

我们可以加入“reffer”信息伪装访问地址,代码如下:

  1. import requests  
  2. headers={ 
  3.     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
  4.     'reffer':'https://bj.meituan.com/'
  5. response = requests.get("https://waimai.meituan.com/",headers=headers)  #模拟请求url 

3.ip地址伪装

对于网络中的反爬虫策略来说,大多数都是根据单个IP的行为来判断是不是网络爬虫的,例如,反爬虫检测到某个IP的访问次数很多,或者是访问的频率很快,就会封禁这个IP。这时我们就要选择代理IP来突破反爬虫的机制,更稳定的及逆行数据的爬取。python添加代理IP的代码如下:

  1. import requests  
  2. proxies={'https':'101.236.54.97:8866'}  
  3. headers={ 
  4.     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
  5.     'reffer':'https://bj.meituan.com/'
  6. response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies)  #模拟请求url 

代理IP可以自己去网上找免费的,但不太稳定,也可去花钱买一些比较稳定的。

4.伪装访问速率

真实用户的访问次数以及访问规律是很稳定的,并不会多次的访问,所以我们要伪装成真实的用户来爬取数据,这样反爬虫机制就不会察觉,可以采用控制访问频率的方式,主要是随机设置访问时间,代码如下:

  1. import requests  
  2. import time,random 
  3. proxies={'https':'101.236.54.97:8866'}  
  4. headers={ 
  5.     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
  6.     'reffer':'https://bj.meituan.com/'
  7. for i in range(10): 
  8.     response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies)  #模拟请求url 
  9.     time.sleep(random.uniform(1.1,5.4)) 

5.伪装用户真实信息

有些网页是需要登录后才会显示数据,而cookie值会携带个人的登录信息,在爬虫中加入cookie值就能避免登录的麻烦,例如知乎、京东等网站,加入方法如下:

  1. import requests  
  2. proxies={'https':'101.236.54.97:8866'}  
  3. headers={ 
  4.     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
  5.     'reffer':'https://bj.meituan.com/'
  6. cookies='' 
  7. response = requests.get("https://waimai.meituan.com/",headers=headers,proxies=proxies,,cookies=cookies)  #模拟请求url 

本文转载自微信公众号「python数据分析之禅 」,可以通过以下二维码关注。转载本文请联系python数据分析之禅公众号。

 

责任编辑:武晓燕 来源: python数据分析之禅
相关推荐

2020-06-10 10:30:48

Python 开发编程语言

2020-06-07 16:16:01

Python开发工具

2021-07-16 08:29:41

项目React必备插件

2021-02-02 13:35:48

React插件N+1

2023-06-21 08:24:46

2018-12-21 14:54:07

2023-02-27 22:03:06

数据库内存RocketMQ

2021-11-19 16:54:11

Python代码开发

2021-04-27 10:02:40

股票数组代码

2019-09-09 14:08:29

AI 数据人工智能

2013-07-17 14:13:08

产品产品失败

2016-10-20 20:21:09

Python爬虫技巧

2016-10-21 14:35:52

Pythonwebget方法

2020-06-09 10:55:16

Python编程代码

2023-02-06 21:58:23

2020-03-09 08:00:00

技术管理套路

2020-04-28 14:50:30

短视频运营实战

2021-05-07 09:39:54

数据清洗方式

2020-09-03 11:14:14

产品设计设计师用户

2020-10-19 19:25:32

Python爬虫代码
点赞
收藏

51CTO技术栈公众号