将 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,针对初学者来说,感觉有点复杂,有兴趣的朋友可以了解一下。
手工那张GIF太真实,已经好久没写爬虫了,之前用Scrapy整的