Python爬虫中,我们通常需要设置请求头headers,以模拟浏览器发送请求,但headers通常是一个字典类型,而在实际使用过程中,我们可能会遇到headers以字符串形式给出的情况,这时就需要将字符串headers转为字典类型,以方便后续处理。以下是将headers请求头字符串转为字典的方法攻略。
方法一:使用json模块
我们可以利用json模块将headers字符串转为字典,具体步骤如下:
-
导入json模块:
import json
-
假设有如下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/"}
''' -
使用json.loads()方法将headers字符串转为字典:
headers_dict = json.loads(headers_str)
-
最终得到的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字符串转为字典,具体步骤如下:
-
假设有如下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/''' -
使用splitlines()方法将字符串按照行分割:
lines = headers_str.splitlines()
-
使用字典推导式将分割后的字符串转为字典类型的headers:
headers_dict = {line.split(':')[0]: line.split(':')[1].strip() for line in lines}
-
最终得到的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模块和字典推导式实现。