使用pip安装第三方库
建议使用reques这个库来处理http请求。
首先我们在命令行中使用以下命令来安装它。
pip install requests
如果你安装失败,一般有可能是因为:
- 你没有正确安装python
- 你安装了python但是没有正确配置path
解决方法:
- 在命令行敲python看进入的python的交互模式命令行是否是python3的命令行,如果版本不对,可能需要重装。
- 尝试使用python -m pip install requests 一般普通的python第三方库都可以通过pip来安装,而现在的python3自带pip。pip在安装一个python库时,会依次安装这个库所需要的依赖库。 而有些python第三库的依赖库时有操作系统限制的,这就导致有些库可能会安装失败。比如,ansible这个库只能在linux系统下安装。 另外还有一些python库会依赖于c++的库,那么通过pip安装的时候,电脑上需要预先准备好C++的编译工具。比如,locust这个库需要visual c++ 14.0的编译工具。当你完成requs库之后,就可以来写第一个接口调用脚本。
使用requests访问接口
这里给出一个简单的例子,大家可以试试。 例1.使用requests访问百度来搜索豆瓣电影的例子
`import requests
urll = 'baidu.com/s?ie=utf-8&…'
r = requests.get(url)
print(r)
print(r.text)`
第一行import语句导入了第三方库requests
第二行是这个接口的URL
第三方使用requests库去get这个接口内容,并且传了参数说从1开始取到25。
这里传什么参数,用什么格式传参数,是由接口提供定义的。
第四行我们打印了接口的返回值,我们可以在屏幕上看到的应该是返回值中的http代码。
第五行把接口的返回值转换成了text文本对象,这里,我们可以在屏幕上看到,其实打印出来的内容是一个网页的完整html,那么你这里运行成功了吗?
任务1.请问断点观察返回的响应里包含了什么
另外有人问print(r)时为什么只出现http代码比如200。
答案是:编写r这个类(requests的响应类)的时候可以通过定义_repr_函数来自定义会打出来的内容。就是这样子,requests的作者定义了你打印一个响应时时,显示的时http code而不是body。但是响应里是有body的,所以你打断点看一下就会发现在r.content里的内容是网站返回的响应。
值得注意的是,这里,我们例子上调用的地址,其实可以在浏览器打开。为什么呢?因为用浏览器打开网页的操作,正式等同于requests等库调用该网页的get接口。实际上,我们在浏览器上对网页的所有操作,比如注册一个用户,或者搜索一个关键词,都会转化成对应的http请求调用,并发给目标服务器。这正是广义上的接口。