将 header 或 post data 快速转换字典方法

不知道有多少同学在学 Python 爬虫的时候收购了每次都要手动给 header 或者 data 加引号。反正Forece是受够了,今天给大家讲一下如何在 Pycharm 开发环境中迅速快速的将这些头信息自动加引号变成字典。

学习爬虫,少不了和 header 打交道

方法一:手动修改

但是我们从开发者面板出来的数据都不是带引号的,都需要手动添加。初学者一般都是这样创建 header 字典的,真实不真实?

方法二:代码转换

或者有些朋友说,我可以自己写一段代码,直接将字符串转换为字典

# 原始header数据
raw_headers = """Host: open.tool.hexun.com
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Accept: */*
Referer: http://stock.hexun.com/gsxw/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8"""

# 代码转换
headers = dict([line.split(": ",1) for line in raw_headers.split("\n")])

# 输出显示
print(headers)

方法三:利用 headers_raw_to_dict 模块

from copyheaders import headers_raw_to_dict

raw_headers = """Host: open.tool.hexun.com
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Accept: */*
Referer: http://stock.hexun.com/gsxw/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8"""

headers = headers_raw_to_dict(raw_headers)

print(headers)

方法四:Pycharm 正则替换(最容易最简单的方法)

其他IDE应该也有正则替换,PyCharm中替换的快捷键是Ctrl+R,选中Regex正则模式

然后

源匹配为 (.*): (.*)$
替换匹配为 "$1": "$2",

其他方法:

网上看到有人推荐Chrome的插件Postman ,还有在线转换工具 curlconverter,针对初学者来说,感觉有点复杂,有兴趣的朋友可以了解一下。