【华为云技术分享】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编程与实战

posted @ 2020-03-19 11:51  华为云官方博客  阅读(276)  评论(0编辑  收藏  举报