Python 爬虫:Header 的设置_爬虫headers怎么写

做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。

别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。

我先来介绍一下这些东西怎么用,文末抱走。


(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

(4)200多本电子书

这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。

基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

(5)Python知识点汇总

知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。

在这里插入图片描述

(6)其他资料

还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。

在这里插入图片描述

这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

print(response.text)

在上面的代码中,倒数第二行是对服务器返回的状态代码进行判断。这里的200就是请求成功的反馈。所有的状态代码的取值一般在 100-599 之间,超出这个范围的响应状态码就不是标准的状态响应码了。[所有的状态码]可以分成 5类:


* 100–199:信息反馈(Informational responses);
* 200–299:成功反馈(Successful responses),上面的代码的 200 status code就属于这里;
* 300–399:重定向消息(Redirection messages);
* 400–499:客户端错误响应(Client error responses),这个区间包含了我们常见的 403 和 404 错误响应码
* 500–599:服务器错误响应(Server error responses)


返回结果:


![img](https://img-blog.csdnimg.cn/img_convert/cc6e482d3e7ff2a1ccbd393df08a04ba.png)



> 
> 注:[https://httpbin.org]是一个开源的,用于测试网页请求的网站,比如上面的/headers的链接,将会返回所发送请求的请求头。详情请参考其官网。
> 
> 
> User-Agent: 用户代理(英语:User Agent)指的是代表用户行为的软件代理程序所提供的对自己的一个标识符。用于标识浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。详情见维基百科词条:[User agent]
> 
> 
> 


如上图所示,如果我们直接用 request 包,上来就调用 get 或者 post 方法就是干,对方的服务器会根据我们发送的\*\*““User-Agent”: “python-requests/2.25.1””\*\*了解到,你是用 python 调用的 request 包来访问他们的服务器的。


由于这种行为仅仅是消耗服务器资源带来成本,但是不会给对方带来任何好处(搜索引擎的爬虫除外),所以有一些网站会加入反爬机制,通过识别 headers 来拒绝对你的请求进行响应。


因此,我们需要在发送的请求中加入自定义的 headers,将我们的请求伪装成利用浏览器进行的请求。


那么,浏览器在访问网站时的 headers 是什么样的呢?我们以 IE 浏览器为例,用 IE浏览器打开 [https://httpbin.org/headers]网站,将会收到网站返回的下面 json 文件,这就是 IE浏览器的 headers。


![img](https://img-blog.csdnimg.cn/img_convert/e283b472e73404044fc95532014f3d24.webp?x-oss-process=image/format,png)


将上面的请求头复制下来,传给 `requests.get()` 函数,即可将请求伪装成浏览器。


requests.get() 的语法是:`requests.get(url,kwargs)`。


其中,url 是我们想要访问的链接,kwargs 是可选参数,包括params、data、json、headers、cookies、auth、files、timeout、proxies、stream、verify、cert等。常用的参数有data、headers。



import requests

url = ‘https://httpbin.org/headers’

headers= {
“Accept”: “image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*”,
“Accept-Encoding”: “gzip, deflate”,
“Accept-Language”: “zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3”,
“Host”: “httpbin.org”,
“User-Agent”: “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; wbx 1.0.0; wbxapp 1.0.0; Zoom 3.6.0)”,
“X-Amzn-Trace-Id”: “Root=1-628b672d-4d6de7f34d15a77960784504”}

response = requests.get(url,headers=headers)

if response.status_code == 200:
print(response.text)


返回的结果变成:


![img](https://img-blog.csdnimg.cn/img_convert/ad6021ee862606e409ccc118c0c530d3.webp?x-oss-process=image/format,png)


上图所示,虽然我们用 Python 发送的 get 请求,但是对方服务器已经认为我们是用浏览器进行访问,这一点依旧是通过上图中的 User-Agent 这个参数进行判断。


此外,我们在应用爬虫的时候,可以随机更换其他 User-Agent 避免触发反爬。


### 二、查看浏览器 headers 的常用方法


上面说到的查看 headers 的方法不很常用,仅仅是用于教学作用。下面介绍两种更加常用的方法。


#### 方法一:这种方法最为常用


在Chrome浏览器的网页上:右键 ——> 检查 ——> Network ——> Doc ——> 在 Name 里找到对应的请求文件 ——> 在右边选择 Headers 标签页,找到“Request Headers”,就可以看到我们发送给服务器的 headers。


![img](https://img-blog.csdnimg.cn/img_convert/77f7cb93d8d3c79fc4d376f80cb69f53.webp?x-oss-process=image/format,png)


同理,服务器在发给我们信息的时候,也会发送 Headers。我们同样在上面的选择路径,可以看到“Response Headers”。


![img](https://img-blog.csdnimg.cn/img_convert/46a3b2c0d86139c04ef9ed45b9f63a75.webp?x-oss-process=image/format,png)


例如上图中,我们可以查看到服务器响应返回的头信息知道响应结果的编码是utf-8,有的还可以看到服务器所用是apache或是其他web服务器。


#### 方法二:这种方法最方便,我最喜欢


当我们需要的 headers 不止 user-agent,甚至还需要 cookies 的时候,需要手动生成的东西就比较多了。那么,有没有**快速一键**生成 Python 爬虫请求头的方法呢?答案是借助[https://curlconverter.com/]这个网站。具体过程如下:


1,在Chrome浏览器的网页上:右键 ——> 检查 ——> Network ——> Doc ——> 在 Name 里找到对应的请求文件


2,右键该文件,copy ——> copy as cURL (bash),注意不是【copy as cURL (cmd)】


![img](https://img-blog.csdnimg.cn/img_convert/bc1d7fe4f4b18a10f00e30f34b213763.webp?x-oss-process=image/format,png)


3,打开网站,[https://curl.trillworks.com/],粘贴 cURL (bash) 到**左边** curl command,右边会**自动**出 Python 代码


![img](https://img-blog.csdnimg.cn/img_convert/edeb5b40f185379c8592a2c67591ba3a.webp?x-oss-process=image/format,png)


#### 方法三:对于 Chrome 浏览器


#### 也可以在地址栏输入



about:version


此时我们会看到自己的 user agent。


headers中有很多内容,主要常用的就是user-agent 和 host,他们是以键对的形式展现出来,如果user-agent 以字典键对形式作为headers的内容,就可以反爬成功,就不需要其他键对;否则,需要加入headers下的更多键对形式。


### 三、Headers 的解读


#### (一)User-Agent 的格式解读


User-Agent通常格式:


**第一部分:Mozilla/5.0**  
 历史原因,User-Agent里默认带有Mozilla字样。


**第二部分:平台信息**  
 Windows NT 6.1是指我使用的操作系统的版本,win7对应的就是Windows NT 6.1。  
 Win64; x64是指操作系统是64位的


Windows系统下:



Windows NT 5.0 // Windows 2000
Windows NT 5.1 // Windows XP
Windows NT 6.0 // Windows Vista
Windows NT 6.1 // Windows 7
Windows NT 6.2 // Windows 8
Windows NT 6.3 // Windows 8.1
Windows NT 10.0 // Windows 10
Win64; x64 // Win64 on x64
WOW64 // Win32 on x64


Linux系统下:





**一、Python所有方向的学习路线**

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

![img](https://img-blog.csdnimg.cn/1d40facda2b84990b8e1743f5487d455.png)  
![img](https://img-blog.csdnimg.cn/0fc11d4a31bd431dbf124f67f1749046.png)

**二、Python必备开发工具**

工具都帮大家整理好了,安装就可直接上手!![img](https://img-blog.csdnimg.cn/ff266f529c6a46c4bc28e5f895dec647.gif#pic_center)

**三、最新Python学习笔记**

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

![img](https://img-blog.csdnimg.cn/6d414e9f494742db8bcc3fa312200539.png)

**四、Python视频合集**

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

![img](https://img-blog.csdnimg.cn/a806d9b941c645858c61d161aec43789.png)

**五、实战案例**

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。![img](https://img-blog.csdnimg.cn/a353983317b14d3c8856824a0d6186c1.png)

**六、面试宝典**

![在这里插入图片描述](https://img-blog.csdnimg.cn/97c454a3e5b4439b8600b50011cc8fe4.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/111f5462e7df433b981dc2430bb9ad39.png)

###### **简历模板**![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值