Python爬虫:将headers请求头字符串转为字典的方法

  • Post category:Python

Python爬虫中,我们通常需要设置请求头headers,以模拟浏览器发送请求,但headers通常是一个字典类型,而在实际使用过程中,我们可能会遇到headers以字符串形式给出的情况,这时就需要将字符串headers转为字典类型,以方便后续处理。以下是将headers请求头字符串转为字典的方法攻略。

方法一:使用json模块

我们可以利用json模块将headers字符串转为字典,具体步骤如下:

  1. 导入json模块:import json

  2. 假设有如下headers请求头字符串:

    headers_str = '''
    {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", "Referer": "https://www.baidu.com/"}
    '''

  3. 使用json.loads()方法将headers字符串转为字典:

    headers_dict = json.loads(headers_str)

  4. 最终得到的headers_dict即为我们想要的字典类型的headers请求头。

完整代码片段:

import json

headers_str = '''
{"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", "Referer": "https://www.baidu.com/"}
'''

headers_dict = json.loads(headers_str)
print(headers_dict)

输出结果:

{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'https://www.baidu.com/'}

方法二:使用字典推导式

我们也可以利用字典推导式将headers字符串转为字典,具体步骤如下:

  1. 假设有如下headers请求头字符串:

    headers_str = '''User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
    Referer: https://www.baidu.com/'''

  2. 使用splitlines()方法将字符串按照行分割:

    lines = headers_str.splitlines()

  3. 使用字典推导式将分割后的字符串转为字典类型的headers:

    headers_dict = {line.split(':')[0]: line.split(':')[1].strip() for line in lines}

  4. 最终得到的headers_dict即为我们想要的字典类型的headers请求头。

完整代码片段:

headers_str = '''User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Referer: https://www.baidu.com/'''

lines = headers_str.splitlines()
headers_dict = {line.split(':')[0]: line.split(':')[1].strip() for line in lines}
print(headers_dict)

输出结果:

{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'https://www.baidu.com/'}

以上就是将headers请求头字符串转为字典的两种方法,分别使用json模块和字典推导式实现。