【华为云技术分享】Python爬虫偷懒神器 — 快速构造请求头!
我们在写爬虫构建请求的时候,不可避免地要添加请求头( headers ),一般来说,我们只要添加 user-agent 就能满足绝大部分需求了
但这并不是绝对的,有些请求单单添加一个 user-agent 是不能获取到数据的,在不知道是缺少哪个请求头参数的情况下,我一般会先把所有参数全部添加上,然后再逐个排除。
如果是后面这种情况,相信大家都会有这种感觉:手动将浏览器中请求头复制粘贴然后构造成字典里的每一个 键值对 简直太TM太费时间了
所以,本文将介绍几个快速构造请求头的方法,供君选择:
正则一键替换
正则替换指的是利用 Pycharm 的 ctrl+R 替换功能,下面带大家一步一步来演示该操作,我们将浏览器的请求头复制到 Pycharm 中,如下面所示
然后按住 crtl+R,会出现上下两个输入框,然后勾选 Regx 以及 In selection 这两个选项
在上面框填入要匹配内容的正则表达式:
(.*?): (.*)
第二个填入匹配组后的格式
"$1": "$2",
其中 "$$1 ", "$2" 分别表示匹配组,即匹配成功的原文
填完之后,选中我们刚复制的内容,点击 Replace all 按钮即可
最后在外层加上 headers = {} 就完成我们要构造的格式了
Pycharm 快捷键
这里再介绍一种利用 Pycharm 快捷键替换方法,常用的快捷键还是要记住,对平常快速代码帮助很大 。
- 第一步
还是以上面复制的请求头为例,按住 Alt 键,同时鼠标定位字典键名结束位置,如下所示,注意看键名旁边都有一个鼠标指针
- 第二步
输入引号,然后指针再前进两步,在字典值前面输入引号。
- 第三步
再按下 End 键,在最末尾输入引号及逗号。
最后按下 Home 键,在最前面输入引号,即大功告成!
和正则替换法一样,在最外层输入 headers = {} 即完成
postman
在浏览器中 Copy as cURL(bash) 我们要构造的请求,如下图所示
copy
然后打开 postman,选择左上角的 New 旁边的 Import 按钮 ,粘贴我们刚 copy 的内容
点击 Import, 就回到了发现请求的界面,选择发送按钮下方的 code 键,
如上图, headers 已生成,不仅支持 Python 还支持其他语言,强大👍
网站一键替换
有不少网站都有这个构造功能,但是该网站是我用过的最好用的最强大的
除了能构造请求头,还能单独构造 cookies 同时自动帮我们生成请求的代码。你甚至你不用自己手写代码
同样的在浏览器中 Copy as cURL(bash) 我们要构造的请求,打开网站 https://curl.trillworks.com/
粘贴到左边框后即自动生成,快得很...
还有多种语言供你选择。
上面便是我介绍的几种方法,是不是很方便,不用再一个一个手动输入了。当然除了上面的方法之外,你也可以自己动手用代码生成,因为都是有一定规律的。
作者:华为云特约供稿开发者 Python编程与实战