写在之前

标准库的内容已经非常多了,我在前面的文章中已经介绍了七八个,没看的可以回头找着去看看。虽然介绍了不少,但是 Python 给编程者的支持不仅仅在于标准库,它还有不可胜数的第三方库。

作为一个 Pythoner,即使你的技术已经达到大佬的级别,在做某件事情之前最好还是 Google 一下是否有标准库或者第三方库来帮你完成,不是有那么一句话么:“如果我比别人看的更远,那是因为我站在巨人的肩膀上”。编程就是要站在巨人的肩膀上,标准库 & 第三方库及其提供者就是这样的巨人,我们应心怀感念,虚心学习。

安装第三方库

安装第三方库的方法有很多,不同的方法有不同的优缺点,大家可以根据自己的喜好或者实际中的工作需要来选择。

使用 pip 安装,这个是我首推的安装方法,用第三方库的管理工具安装。有一个网站是专门用来存储第三方库的,网站地址为 https://pypi.python.org/pypi ,所有在这个网站上,可以用 pip 或者 easy_install 这种安装工具来安装。

pip 是一个以 Python 计算机程序语言写成的软件包管理系统,它可以安装和管理软件包。另外,不少的软件包也可以在 “Python 软件包索引” 中找到。
首先,要安装 pip,大家可以先检查一下在自己的操作系统中是否已经有了 pip,因为有的操作系统,或者已经预先安装了,或者在安装 Python 的时候就安装了。如果确定没有安装的话,就要针对自己的操作系统进行安装,例如在 Ubuntu 系统中:

pip apt-get install python3-pip

当然也可以下载文件 get-pip.py(https://bootstrap.pypa.io/get-pip.py),然后执行 python get-pip.py 来安装,这个方法同样适用于 Windows 系统。

这样 pip3 就安装好了,然后你就可以“为所欲为”的安装第三方库了。之所以这样,是因为只需要执行 pip3 install **** (**** 代表第三方库的名字,如果你做了特别的设置,或者不再考虑 python2 的相关安装了,那么可以直接使用 pip install **** 的方式进行安装)即可。当然这个前提是那个库已经在 PyPI 里面了。

当第三方库安装完成以后,接下来的使用就如同前面的标准库一样。

requests 库

在这里我们以很重要的 requests 库为例,来说明一下第三方库的安装和使用。requests 是一个用于在程序中进行 http 协议下的 get 和 post 请求的模块,可以说是好用到哭。

1.安装

pip3 install requests

安装好之后进入交互模式,在交互模式下进行如下操作:

>>> import requests
>>> dir(requests)
['ConnectTimeout', 'ConnectionError', 'DependencyWarning', 'FileModeWarning', 'HTTPError', 'NullHandler', 'PreparedRequest', 'ReadTimeout', 'Request', 'RequestException', 'RequestsDependencyWarning', 'Response', 'Session', 'T
imeout', 'TooManyRedirects', 'URLRequired', '__author__', '__author_email__', '__build__', '__builtins__', '__cached__', '__cake__', '__copyright__', '__description__', '__doc__', '__file__', '__license__', '__loader__', '__n
ame__', '__package__', '__path__', '__spec__', '__title__', '__url__', '__version__', '_check_cryptography', '_internal_utils', 'adapters', 'api', 'auth', 'certs', 'chardet', 'check_compatibility', 'codes', 'compat', 'cookies
', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'session', 'sessions', 'status_codes', 'structures', 'urllib3', 'utils', 'warnings']

从上面的代码可以看出,在 http 中常用到的 get,cookies,post 都赫然在目。

2.get 请求

>>> r = requests.get('http://www.baidu.com')

上面得到某度的一个请求实例,然后:

>>> r.cookies
<RequestsCookieJar[Cookie(version=0, name='BDORZ', value='27315', port=None, port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1537
434404, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]>

仔细观察上面,是不是看到了 cookie 的 name 和 value ?结合我们以前学过的网络的相关知识,有没有一种豁然开朗的感觉?下面让我们继续来查看一下其它的属性:

>>> r.headers
{'Server': 'bfe/1.0.8.18', 'Date': 'Wed, 19 Sep 2018 09:06:42 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 23 Jan 2017 13:28:36 GMT', 'Connection': 'Keep-Alive', 'Cache-Control': 'private, no-cache, no-store, pro
xy-revalidate, no-transform', 'Pragma': 'no-cache', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}
>>> r.encoding
'ISO-8859-1'
>>> r.status_code
200

上面这些都是在客户端看到的网页的基本属性,下面这个则是网页的内容,比较长,我只截取部分内容显示:

>>> print(r.text)
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.
bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>
....

请求发出后,requests 会基于 http 头部对相应的编码做出有根据的推测,当你访问 r.text 时,requests 会使用其推测的文本编码。你可以找出 requests 使用了什么编码,并且能够使用 r.coding 属性来改变它。

>>> r.content
b'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=tex
t/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>

3.post 请求

假如你要向某个服务器发送一些数据,可能会使用 post 的方式,用 requests 模块实现这种请求比较简单,只需要传递一个字典给 data 参数即可,在这我使用一个在别处看到的例子:

>>> import requests
>>> payload = {'key1':'value1','key2':'value2'}
>>> r = requests.post('http://httpbin.org/post')
>>> r1 = requests.post('http://httpbin.org/post',data = payload)

上面代码中 r 没有加 data 的请求,得到的效果如下:

>>> print(r.text)
{"args": {},"data": "","files": {},"form": {},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Connection": "close","Content-Length": "0","Host": "httpbin.org","User-Agent": "python-requests/2.19.1"},"json": null,"origin": "58.33.136.74","url": "http://httpbin.org/post"
}

r1 为 data 提供了值,得到的效果如下:

>>> print(r1.text)
{"args": {},"data": "","files": {},"form": {"key1": "value1","key2": "value2"},"headers": {"Accept": "*/*","Accept-Encoding": "gzip, deflate","Connection": "close","Content-Length": "23","Content-Type": "application/x-www-form-urlencoded","Host": "httpbin.org","User-Agent": "python-requests/2.19.1"},"json": null,"origin": "","url": "http://httpbin.org/post"
}

比较上面两个结果,发现后者当 data 被赋值以后,在结果中 form 的值即为 data 所传入的数据,它就是 post 给服务器的内容。

写在之后

通过这么一个实例,在上面我们展示了一下第三方模块的应用方法,其实没有什么特殊的地方,安装后和用标准库模块一样。一般来说的话,第三方模块常常在某个方面做得更好,或者性能更优。所以,请不要把它们放在你的视线之外。

更多内容,欢迎关注公众号「Python空间」,期待和你的交流。

Requests 库 | 不可胜数的 Python 第三方库相关推荐

  1. python第三方库安装方法-Python第三方库安装

    Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库.PyPI全称是Python Package Index,指的是Python包的索引,它 ...

  2. Python第三方库(模块)下载和安装(使用pip命令)

    Python第三方库是由社区开发者编写的代码包,用于增强Python的功能和提供各种特定的功能.通常,这些库被打包为模块,可以通过使用Python包管理工具pip来下载和安装. 以下是使用pip下载和 ...

  3. Linux离线安装Python第三方库Requests

    前言:因为公司服务器不能上外网,所以执行Python脚本需要自行配置,如用到第三方库,也要自行安装.由于这个系统镜像缺少很多基础依赖,导致各种apt install都无法安装,只能源码安装插件.不管如 ...

  4. dos系统不能安装python模块,无法使用pip命令安装python第三方库的原因及解决方法...

    再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果 ...

  5. Python_note8 程序设计方法学+Python第三方库安装+os库

    实例13 体育竞技分析 自顶向下,解决复杂问题的有效方法,将一个小问题表达为若干小问题组成的形式,使用同样方法进一步解决小问题直至可以用计算机简单解决:自底向上 理解自顶向下的设计思维:分而治之:理解 ...

  6. python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...

    无法使用pip命令安装python第三方库的原因及解决方法 再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以 ...

  7. python第三方库排行-Python模块汇总(常用第三方库)

    模块 定义 计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里.在python里,一个.py文件就是一个模块 优点: 提高代码的可维护性 ...

  8. python第三方库排行-140种Python标准库、第三方库和外部工具

    导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...

  9. python的第三方库-Python第三方库安装和卸载

    install python package 系统:Windows 7 版本:Python 3.5 Python是一门简洁.优雅的语言,丰富的第三方库能让我们很多的编程任务变得更加简单.对于想要用Py ...

  10. python第三方库下载-3、python第三方库的安装方式

    前言:在学习Python过程中,经常要用到很多第三方库,面对各种不同情况,Python为我们提供了多种安装方法,这里主要介绍三种方法:pycharm在线安装.pip在线安装(强烈推荐).离线安装. 方 ...

最新文章

  1. 《More Effective C++》读书笔记
  2. error: declaration of 'cv::Mat R ' shadows a parameter
  3. 日志消息是可执行代码和注释
  4. 与传统的计算机硬件系统相比,计算机一级名词解释
  5. MSP430F5529 DriverLib 库函数学习笔记(十三)认识低功耗模式
  6. git checkout 和 git reset
  7. 融创上海:从营销切入,建立自上而下的数据平台,实现数据应用
  8. java 内存屏障_关于Java中的内存屏障
  9. java管理系统类似的_开发类似安居客OA系统管理平台
  10. CIC滤波器设计原理总结
  11. windows连接远程桌面必须要有用户名和密码
  12. 偏微分方程数值解—ADI格式求解二维抛物型方程
  13. 香农码字matlab,香农编码的MATLAB实现.ppt
  14. (娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片
  15. NIVIDIA 硬解码学习4
  16. Android.mk编译错误 FAILED: ninja: unknown target ‘MODULES-IN-packages-apps-XXXX‘
  17. python红楼梦人物词频统计_用 Python 分析《红楼梦》
  18. Office-页码全为0的原因及解决方法
  19. matlab不同版本之间编码出错问题20200825
  20. wc 一个进程结果是2_用开放的wc创建一个Web组件

热门文章

  1. 完整JAVA学习路线图,助您从JAVA小白变身秃顶大叔,迈向JAVA成神之路
  2. 感谢《蜗居》中的100句经典台词让我们提前认清了现实[转帖]
  3. 如何理解范德波尔方程
  4. mysql限制小数位_mysql-控制小数位数
  5. Excel中使用条件格式(比较两列将内容不同用颜色标识)
  6. 冰川时代5:星际碰撞Ice Age: Collision Course迅雷下载
  7. Android 去掉Power键屏保功能,但保留长按关机功能。
  8. android依赖本地工程排除,Android Gradle依赖项排除(Android Gradle dependency exclude)
  9. 渥太华大学计算机科学COOP,渥太华大学专业哪个好
  10. 别着急抢iPhone 13了!拍照有马赛克,苹果确认部分iPhone13存在bug