爬虫_Day 3 伪装请求头

上次成功的爬取到了纵横中文网24小时热销排行榜

他是没有反爬机制的

所以我们很顺利就获取到 l


但是遇到反爬怎么办,我们也丝毫不慌

我们就来伪装一下他的“头部”

 

爬虫_Day 3 伪装请求头_第1张图片

这次我们使用豆瓣来测试一下

首先我们用python访问一下

import urllib.request
url = "https://www.douban.com/"
respinse = urllib.request.urlopen(url).read().decode("utf-8")
print(respinse)

爬虫_Day 3 伪装请求头_第2张图片

哦吼报错了

爬虫_Day 3 伪装请求头_第3张图片

首先我们需要知道被反爬的原因

打开Fiddle 来抓取一下(以后再说这个工具)

这里介绍一个不错的测试用的网站

httpbin.org​httpbin.org

 

爬虫_Day 3 伪装请求头_第4张图片

嗯哼浏览器标识居然直接就是python **

服务器发现直接拒绝!!

居然用python来访问

(User-Agent 浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。)

正常浏览器的User-Agent 是啥样子呢

我们打开豆瓣首页,按下F12

爬虫_Day 3 伪装请求头_第5张图片

点击network

刷新一下浏览器

点击最早时间段

爬虫_Day 3 伪装请求头_第6张图片

爬虫_Day 3 伪装请求头_第7张图片


好的找到request headers 这个就是请求头了

请求头相关内容见最后的连接

我们找到User-Agent

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36

好了获取到了headers信息,也知道了为拒绝访问了

开撸

import urllib.request
url = "https://www.douban.com/"

# 伪装好我们 的头部
headers = {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"
 }

 # 以字典 形式存储 里面是键值对
 
request = urllib.request.Request(url=url, headers=headers)
# 然后封装一下

respinse = urllib.request.urlopen(request).read().decode("utf-8")
# 去访问

print(respinse)

三五秒钟过后

……

爬虫_Day 3 伪装请求头_第8张图片

完全 OK

我们在来抓一下

爬虫_Day 3 伪装请求头_第9张图片

OK啦 抓的user-agent跟我们封装的一毛一样

服务器也成功的返回了数据给我们

当然有的不是只改user-agent 就可以解决的

后续再分享啊

爬虫_Day 3 伪装请求头_第10张图片

 

你可能感兴趣的:(爬虫_Day 3 伪装请求头)