提取header头进行模块化处理

Posted hanxiaobei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提取header头进行模块化处理相关的知识,希望对你有一定的参考价值。

在进行爬取网上东西的时候一般网站都做了UA的过滤,解决办法就是在代码中加入。

所以才有了本篇提取header头信息单独写成一个模块或者说是函数/类的想法,直接上示例

1、把UA头信息在浏览器中复制出来,并存在一个txt文档中,如下是我提取的示例:

1 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
2 Accept-Language:zh-CN,zh;q=0.9
3 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36

2、编写python代码,如下是我编写的python方法,也可以写成类,把公共的东西放在这里

 1 ‘‘‘
 2 读取文本内容并生成请求header头信息
 3 ‘‘‘
 4 def auto_make_header():
 5     ress_con = open("headers.txt","r",encoding="utf-8").readlines()
 6     keyy = []
 7     veluess =[]
 8     for ress in ress_con:
 9         res = ress.split(":")
10         keyy.append(res[0])
11    
12         veluess.append(res[1].replace("
",""))
13    
14     header = dict(zip(keyy,veluess))
15     return header
16 
17 # print(auto_make_header())

3、在编写请求的时候直接引用过来就可以了,减少了代码的书写,为提高工作效率节约了时间。如下是我编写的小例子

1 import requests
2 from make_header import auto_make_header
3 headers = auto_make_header()
4 
5 url = "http://www.baidu.com"
6 res = requests.get(url=url,headers=headers)
7 print(res.text)

 

好了,本篇的小技巧小案例就到此了,是不是python写代码很简单。

 

以上是关于提取header头进行模块化处理的主要内容,如果未能解决你的问题,请参考以下文章

head标签怎么给多个html引用

通过Nginx定义Header头信息

python requests 模块get 没有headers怎么办?如何设置请求头?

Vscode for python ide配置

从 HTML 正文中提取文本片段(在 .NET 中)

人性化的Requests模块(响应与编码header处理cookie处理重定向与历史记录代理设置)