快速一键生成Python爬虫请求头
作者:zhangdingqu 发布时间:2022-05-21 01:00:53
目录
一个不那么方便的解决方案:
实战演练
网站在线转换
Postman
今天介绍个神奇的网站!堪称爬虫偷懒的神器!
我们在写爬虫,构建网络请求的时候,不可避免地要添加请求头( headers ),以 mdn 学习区为例,我们的请求头是这样的:
一般来说,我们只要添加 user-agent 就能满足绝大部分需求了,Python 代码如下:
import requests
headers = {
#'authority': 'developer.mozilla.org',
#'pragma': 'no-cache',
#'cache-control': 'no-cache',
#'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 YaBrowser/19.7.0.1635 Yowser/2.5 Safari/537.36',
#'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
#'accept-encoding': 'gzip, deflate, br',
#'accept-language': 'zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6',
#'cookie': 你的cookie,
}
response = requests.get('https://developer.mozilla.org/zh-CN/docs/learn', headers=headers)
但是有些请求,我们要把特定的 headers 参数添加上才能获得正确的网络响应,不知道哪个参数是必要的情况下,就要先把所有参数都添加上,再逐个排除。
但是手动复制粘贴 headers 字典里的每一个键值对太费事了
一个不那么方便的解决方案:
用正则表达式或者直接字符串替换,把 headers 字符串直接转化为字典,封装成函数方便以后反复调用。
有的人喜欢用这种方法,每次复制headers信息,然后调用自己封装好的函数,但我觉得还是挺麻烦的。
那么还有没有快速一键生成 Python 爬虫请求头的方法呢?
这里给大家介绍两个:
网站在线转换
Postman
实战演练
抓取网站:https://developer.mozilla.org...
网站在线转换
1,Chrome 打开开发者选项( f12 )---> network 选项卡 ---> 刷新页面,获取请求 ---> 找到页面信息对应的请求 (通过请求的名称、后缀和 response 内容来判断)
2,右键,copy ---> copy as cURL (bash),注意不是【copy as cURL (cmd)】
3,打开网站,https://curl.trillworks.com/,粘贴 cURL (bash) 到左边 curl command,右边会自动出 Python 代码
4,生成代码如下图
5,print ( response.text ) 就可以直接打印网页源代码啦!
Postman
1,下载 postman ( Chrome 也有个 postman 的插件,操作应该差不多)
2,打开 postman,弹出的界面可以直接关掉
3,import --> paste raw text,在 Chrome 里复制 curl (bash),粘贴到下面的对话框里,点击 import 按钮
4,点击 send,模拟网络请求,下方可查看源代码
5,确保源代码正常后,点击 code
6,左上角可以选择编程语言,右上角复制到剪贴板
大功告成!
其实我本人平时都是用第一种,网站比较稳定,基本没出现过异常;有了这个神器就不用自己再构造请求头了,先一键生成,然后再根据需求调一调就好了,几秒钟就搞定了。
来源:https://www.cnblogs.com/zhangdingqu/p/14392716.html


猜你喜欢
- 终极版终于有时间给大家分享了!!!。我们先看一下效果图。1:登录界面:2:查询数据库所有的内容!3:链接数据库:4:最终的打包!话不多说直接
- 查看MySQL执行的语句想实时查看MySQL所执行的sql语句,类似mssql里的事件探查器。对my.ini文件进行设置,打开文件进行修改:
- 我是以Python开门的,我还是觉得Python也可以进行地形三维可视化,当然这里需要借助第三方库,so,我就来介绍:Python一个很重要
- Pandas库十分强大,但是对于切片操作iloc, loc和ix,很多人对此十分迷惑,因此本篇博客利用例子来说明这3者之一的区别和联系,尤其
- 译注:这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(me
- 表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验。网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没
- 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。通常情况下,如果在WHERE
- 问题描述像这样的图,我想把右边的colorbar设置成和主图一样高度方法0. plt.colorbar参数介绍https://matplot
- 事情是这样的,博主初学python和机器学习,在跑一个代码的时候被提示出现以下错误:(能被提示出现这个错误,可见确实是初学了!)图1:跑代码
- 查看安装的python版本号可以使用【python --version】命令。具体方法:首先按【win+r】组合键打开运行;然后输入cmd,
- import os import sys import string #以指定模式打开指定文件,获取文件句柄 def getFileIns(
- 一、安装软件包并创建项目$sudo pip install django$sudo python -c "import djang
- 背景由于 python 自带的源下载速度非常慢,特别是安装一些库的时候,甚至有时会失败。pip国内的一些镜像 阿里云 http:
- 本文实例讲述了Python实现动态加载模块、类、函数的方法。分享给大家供大家参考,具体如下:动态加载模块: 方式1:系统函数__import
- 回收站(Recycle Bin)从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息。用户进行删除操作的对象并没有被数
- 以下内容是针对安装tensorflow-CPU版本的。tensorflow已经支持Python3.8版本的安装。可以查看自己的Python版
- 在 pandas 中提供了利用映射关系来实现某些操作的函数,具体如下:replace() 函数:替换元素;map() 函数:新建一列;ren
- 前情提要上文我们分析了挂载组件主要调用了三个函数: createComponentInstance(创建组件实例)、setupCompone
- swoole —— 重新定义PHPswoole 的进程之间有两种通信方式,一种是消息队列(queue),另一种是管道(pipe),对swoo
- 双向RNN:bidirectional_dynamic_rnn()函数的使用详解先说下为什么要使用到双向RNN,在读一篇文章的时候,上文提到