利用正则表达式快速转换浏览器Header格式以适配Python请求
本文介绍如何将从Chrome浏览器复制的原始HTTP Header数据,通过正则表达式快速转换为Python代码中常用的字典格式。通过Sublime Text等编辑器使用特定的匹配与替换规则,在Header键值对的冒号两侧自动添加单引号并追加逗号,从而简化Python网络请求库(如requests)的参数构建过程。
利用正则表达式为Header冒号两侧的键值对添加单引号,以便在Python发起网络请求时使用。
首先,从Chrome浏览器的开发者工具中直接复制得到的原始Header数据格式如下:
Host: kyfw.12306.cn Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: */* X-Requested-With: XMLHttpRequest If-Modified-Since: 0 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 Referer: https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E4%B8%8A%E6%B5%B7,SHH&ts=%E9%A6%99%E6%B8%AF%E8%A5%BF%E4%B9%9D%E9%BE%99,XJA&date=2019-04-12&flag=N,N,Y Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: JSESSIONID=76B27521A27493046570C27D4EA89116; RAIL_OkLJUJ=FFA0Gp4TGPWRINmcFUWWyIHH0ugtMppg; _jc_save_wfdc_flag=dc; ten_key=ySPk59Ew/hagxMnD31qdYQ64ryEVBMwd; ten_js_key=ySPk59Ew%2FhagxMnD31qdYQ64ryEVBMwd; BIGipServerotn=1123025418.64545.0000; RAIL_EXPIRATION=1555320982648; RAIL_DEVICEID=SandqZ9YRixyZOnJ2ZMUl2iYN8RPrDz8F6WsV6wDEryAZh_41c-qHzPyRmNlJNXpOSoNpmYE3SIpEhKVV06mAxHwB6RWk-l4vxZg0an4qePt-qPsrnaceVrdc7eZzC1dJheS9V9TYLwrGQ_iG85ax_hB8VADhhu3; BIGipServerpool_passport=200081930.50215.0000; route=c5c62a339e7744272a54643b3be5bf64; _jc_save_fromStation=%u4E0A%u6D77%2CSHH; _jc_save_toDate=2019-04-12; BIGipServerportal=2949906698.17695.0000; _jc_save_toStation=%u5357%u5B81%2CNNZ; _jc_save_fromDate=2019-04-30
应用正则表达式进行替换处理后的结果如下所示(注意:替换完成后,需手动删除最后一行末尾多余的逗号):
'Host':' kyfw.12306.cn', 'Connection':' keep-alive', 'Pragma':' no-cache', 'Cache-Control':' no-cache', 'Accept':' */*', 'X-Requested-With':' XMLHttpRequest', 'If-Modified-Since':' 0', 'User-Agent':' Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', 'Referer':' https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E4%B8%8A%E6%B5%B7,SHH&ts=%E9%A6%99%E6%B8%AF%E8%A5%BF%E4%B9%9D%E9%BE%99,XJA&date=2019-04-12&flag=N,N,Y', 'Accept-Encoding':' gzip, deflate, br', 'Accept-Language':' zh-CN,zh;q=0.9', 'Cookie':' JSESSIONID=76B27521A27493046570C27D4EA89116; RAIL_OkLJUJ=FFA0Gp4TGPWRINmcFUWWyIHH0ugtMppg; _jc_save_wfdc_flag=dc; ten_key=ySPk59Ew/hagxMnD31qdYQ64ryEVBMwd; ten_js_key=ySPk59Ew%2FhagxMnD31qdYQ64ryEVBMwd; BIGipServerotn=1123025418.64545.0000; RAIL_EXPIRATION=1555320982648; RAIL_DEVICEID=SandqZ9YRixyZOnJ2ZMUl2iYN8RPrDz8F6WsV6wDEryAZh_41c-qHzPyRmNlJNXpOSoNpmYE3SIpEhKVV06mAxHwB6RWk-l4vxZg0an4qePt-qPsrnaceVrdc7eZzC1dJheS9V9TYLwrGQ_iG85ax_hB8VADhhu3; BIGipServerpool_passport=200081930.50215.0000; route=c5c62a339e7744272a54643b3be5bf64; _jc_save_fromStation=%u4E0A%u6D77%2CSHH; _jc_save_toDate=2019-04-12; BIGipServerportal=2949906698.17695.0000; _jc_save_toStation=%u5357%u5B81%2CNNZ; _jc_save_fromDate=2019-04-30'
匹配模式设置为:(.*?)\:(.*?)\n
替换字符串设置为:'$1':'$2',\n
在Sublime Text编辑器中的具体操作界面如下:

实际匹配与替换的效果展示如下:

总结
上述内容介绍了如何利用正则表达式将浏览器Header转换为适合Python请求的格式,希望能为读者提供实际帮助。如有任何疑问,欢迎留言,小编将及时回复。同时感谢大家对本站的支持!如果您觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









