给你一个建议,或许你应该学学 postman

简单模拟请求的工具 (๑• . •๑)

使用

最简单的方法就是直接在浏览器中复制 Copy as cURL ,然后把数据导入 postman,然后 send ,收工。

我们这里拿 知乎首页 举例

在对应的请求下复制 cURL

打开 postman , 点击左上角的 Import , 选择Paste Raw Text ,最后 Import,点击 send发送请求

发送请求之后就可以查看了,如下图,标箭头的地方可以打开看更多。比如可以预览web界面,查看 Headers 信息,查看状态,复制代码。

同时可以打开 Headers ,用来调试,哪些是需要的,哪些不需要

最方便的一点是,可以直接生成对应的编程语言,并复制,例如Python的requests方法:

好了,到这里 postman 的简单功能就说完了,他的全部功能当然不止这一点,更多的就去看 文档啦

问题

在我的使用过程中,发现了 postman 的一些问题,如:导入错误,参数错误,请求失误。

导入错误

例如知乎这个例子,如果我们复制的是 Copy as cURL (cmd) ,可能你会遇到下面的错误

这个时候选用 Copy as cURL (bush) 就好了,具体原因是啥,我也不清楚。我在这里找到了别人的描述

There is no difference between the two cURL command because there is a difference between ” and ‘.

Refer : Use cURL to get the same results as a web browser

参数错误

举个例子,今天在帮朋友查看 这个网站 的翻页,复制用postman打开, copy cURL 内容是

导入之后,send,返回 400 错误。

postman 转义的code是:

可以看到 加入了大量的 ^ 符号,这个在Python中是运算符

1 ^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001。

这也是 postman 的一个问题

请求失误

这个问题,我也不是很懂,有的请求 postman 返回错误,但是复制代码到 Python 环境中运行是可以获得数据的,所以最好是多次验证。

文末知识点摘要:Python 中,字符串"连接"效率最高的方式是?一定出乎你的意料

网上很多文章人云亦云,字符串连接应该使用「join」方法而不要用「+」操作。说前者效率更高,它以更少的代价创建新字符串,如果用「+」连接多个字符串,每连接一次,就要为字符串分配一次内存,效率显得有点低,这样的解释听起来很有道理,但 Cpython 解释器是不是真的按照我们说的这样呢?

今天做了一个试验,结果可能会出乎你的意料。

上面 3 个函数分别表示用「join」和「format」还有「+」操作来连接字符串,从 0 到 n,总共 n 个数字连接起来构成一个新的字符串,形如:1234567891011……n。

下面是测试脚本:

每组取了15个样本数据,分别用 1,2,4,8,… 8192 个数字相连接,得到的统计数据可以看出,在数据量非常少的时候,三者效率几乎没什么差异,当少于20个字符串连接时,用「+」效率甚至更高,不过,随着字符串的个数增多,「join」方法发挥出来效果了,而用「+」越来越慢。这点无论是 python2 还是 python3 基本上是一样的。

所以结论是:如果连接的字符串很少,只有几个或者十几个,完全可以通过「+」来连接,毕竟这种方式更直白,而超过一定个数之后,则应该采用「join」方法,只有在操作大数据的时候,两者的对比才明显。

通过现象看本质才能做到知其然并知其所以然。Cpython 编译器内部其实针对字符串做了非常多的优化工作。在下篇文章准备专门写一写字符串工作原理的文章,这里先买个瓜子,预知后事如何,请关注「菜鸟学Python」

本篇文章分享到此结束,部分素材来源网络与自己整理,如有侵权,请联系删除,希望本篇文章的分享对正在学习Python的你有所帮助。