2
2
3
3
#第三方库
4
4
5
- 标准库的内容已经非常多了,前面仅仅列举几个,但是python给编程者的支持还不仅仅在于标准库 ,它还有不可胜数的第三方库。因此,如果作为一个python编程者 ,即使你达到了master的水平,最好的还是要在做某个事情之前,在网上搜一下是否有标准库或者第三方库替你完成那件事 。因为,伟大的艾萨克·牛顿爵士说过:
5
+ 标准库的内容已经非常多了,前面仅仅列举几个,但是Python给编程者的支持不仅仅在于标准库 ,它还有不可胜数的第三方库。因此,如果作为一个Pythoner ,即使你达到了master的水平,在做某个事情之前最好在网上搜一下是否有标准库或者第三方库替你完成 。因为,伟大的艾萨克·牛顿爵士说过:
6
6
7
7
> 如果我比别人看得更远,那是因为我站在巨人的肩上。
8
8
9
- 编程,就要站在巨人的肩上。标准库和第三方库以及其提供者 ,就是巨人,我们本应当谦卑地向其学习,并应用其成果。
9
+ 编程,就要站在巨人的肩上。标准库和第三方库及其提供者 ,就是巨人,我们本应当谦卑地向其学习,并应用其成果。
10
10
11
11
##安装第三方库
12
12
13
- 要是用第三方库,第一步就是要安装,在本地安装完毕,就能如同标准库一样使用了。其安装方法如下:
13
+ 安装第三方库的方法有几种,不同方法有不同的优缺点,读者可以根据自己的喜好或者实际的工作情景来选择。
14
14
15
15
** 方法一:利用源码安装**
16
16
17
- 在github.com网站可以下载第三方库的源码(或者其它途径 ),得到源码之后,在本地安装。
17
+ 在github.com网站可以下载第三方库的源码(注意:github不是源码的唯一来源,只不过很多源码都在这个网站上,我也喜欢罢了 ),得到源码之后,在本地安装。
18
18
19
- 一般情况,得到的码格式大概都是 zip 、 tar.zip、 tar.bz2格式的压缩包。解压这些包,进入其文件夹,通常会看见一个 setup.py 的文件。如果是Linux或者Mac(我是用ubuntu,特别推荐哦),就在这里运行shell,执行命令:
19
+ 如果你下载的是一个文件包,即得到的源码格式为 zip 、 tar.zip、 tar.bz2的压缩文件,需要先解压缩,然后进入其目录;如果你能熟练使用git命令,可以直接从github中clone源码到本地计算机上,然后进入该目录。
20
+
21
+ 通常会看见一个 setup.py 的文件。
20
22
21
23
python setup.py install
22
24
23
- 如果用的是windows,需要打开命令行模式,执行上述指令即可。
25
+ 在这里可能对某些操作系统的读者就漠视了,因为我用的是Ubuntu,读者可以根据自己的操作系统确定安装方法。
26
+
27
+ 如此,就能把这个第三库安装到系统里。具体位置,要视操作系统和你当初安装Python环境时设置的路径而定。
28
+
29
+ 这种安装方法有时候麻烦一些,但是比较灵活,主要体现在:
24
30
25
- 如此,就能把这个第三库安装到系统里。具体位置,要视操作系统和你当初安装python环境时设置的路径而定。默认条件下,windows是在` C:\Python2.7\Lib\site-packages ` ,Linux在` /usr/local/lib/python2.7/dist-packages ` (这个只是参考,不同发行版会有差别,具体请读者根据自己的操作系统,自己找找),Mac在 ` /Library/Python/2.7/site-packages ` 。
31
+ - 可以下载安装自己选定的任意版本的第三方库,比如最新版,或者更早的某个版本,所以在某些有特殊需要的时候,常常使用这种方式安装。
32
+ - 通过安装设置可以指定安装目录,自由度比较高。
26
33
27
34
有安装就要有卸载,卸载所安装的库非常简单,只需要到相应系统的site-packages目录,直接删掉库文件即卸载。
28
35
29
36
** 方法二:pip**
30
37
31
- 用源码安装,不是我推荐的,我推荐的是用第三方库的管理工具安装。有一个网站,是专门用来存储第三方库的,所有在这个网站上的,都能用pip或者easy_install这种安装工具来安装。这个网站的地址:https://pypi.python.org/pypi
38
+ 用源码安装,不是我推荐的,我推荐的是用第三方库的管理工具安装。
39
+
40
+ 有一个网站,是专门用来存储第三方库的,所有在这个网站上的,都能用pip或者easy_install这种安装工具来安装。网站的地址:https://pypi.python.org/pypi
41
+
42
+ > pip是一个以Python计算机程序语言写成的软件包管理系统,它可以安装和管理软件包,另外不少的软件包也可以在“Python软件包索引”(英语:Python Package Index,简称PyPI)中找到。(源自《维基百科》)
32
43
33
- 首先,要安装pip(python官方推荐这个,我当然要顺势了,所以,就只介绍并且后面也只使用这个工具)。如果读者跟我一样,用的是ubuntu或者其它某种Linux,基本不用这个操作,在安装操作系统的时候已经默认把这个东西安装好了(这还不是用ubuntu的理由吗?)。如果因为什么原因,没有安装 ,可以使用如下方法:
44
+ 首先,要安装pip。读者可以先检查一下,在你的操作系统中是否已经有了pip,因为有的操作系统,或者已经预先安装了,或者在安装Python的时候安装了。如果你确信没有安装 ,可以使用如下方法:
34
45
35
46
Debian and Ubuntu:
36
47
@@ -42,7 +53,9 @@ Fedora and CentOS:
42
53
43
54
当然,也可以这里下载文件[ get-pip.py] ( https://bootstrap.pypa.io/get-pip.py ) ,然后执行` python get-pip.py ` 来安装。这个方法也适用于windows。
44
55
45
- pip安装好了。如果要安装第三方库,只需要执行` pip install XXXXXX ` (XXXXXX代表第三方库的名字)即可。
56
+ pip就这样安装好了,非常简单吧。
57
+
58
+ 然后你就可以淋漓尽致地安装第三方库了,之所以如此,是因为只需要执行` pip install XXXXXX ` (XXXXXX代表第三方库的名字)即可。当然前提是那个库已经在PyPI里面了。
46
59
47
60
当第三方库安装完毕,接下来的使用就如同前面标准库一样。
48
61
@@ -79,7 +92,9 @@ pip安装好了。如果要安装第三方库,只需要执行`pip install XXXX
79
92
>>> r.cookies
80
93
<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='PHPSESSID', value='buqj70k7f9rrg51emsvatveda2', port=None, port_specified=False, domain='www.1world0x00.com', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]>
81
94
82
- 原来这样呀。继续,还有别的属性可以看看。
95
+ 仔细观察,是不是看到了cookie的name和value,结合对网络有关知识的理解,是不是有一种豁然开朗恍然大悟的感觉?
96
+
97
+ 继续,还有别的属性可以看看。
83
98
84
99
>>> r.headers
85
100
{'x-powered-by': 'PHP/5.3.3', 'transfer-encoding': 'chunked', 'set-cookie': 'PHPSESSID=buqj70k7f9rrg51emsvatveda2; path=/', 'expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'keep-alive': 'timeout=15, max=500', 'server': 'Apache/2.2.15 (CentOS)', 'connection': 'Keep-Alive', 'pragma': 'no-cache', 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'date': 'Mon, 10 Nov 2014 01:39:03 GMT', 'content-type': 'text/html; charset=UTF-8', 'x-pingback': 'http://www.1world0x00.com/index.php/action/xmlrpc'}
@@ -90,7 +105,9 @@ pip安装好了。如果要安装第三方库,只需要执行`pip install XXXX
90
105
>>> r.status_code
91
106
200
92
107
93
- 下面这个比较长,是网页的内容,仅仅截取显示部分:
108
+ 这些都是在客户端看到的网页基本属性。
109
+
110
+ 下面这个比较长,是网页的内容,仅仅截取部分显示:
94
111
95
112
>>> print r.text
96
113
@@ -118,40 +135,44 @@ pip安装好了。如果要安装第三方库,只需要执行`pip install XXXX
118
135
119
136
###post请求
120
137
121
- requests发送post请求,通常你会想要发送一些编码为表单的数据——非常像一个html表单。要实现这个,只需要简单地传递一个字典给data参数。你的数据字典在发出请求时会自动编码为表单形式 。
138
+ 假如你向某个服务器发送一些数据,可能会谁用post的方式,用requests模块实现这种请求比较简单,只需要传递一个字典给data参数 。
122
139
123
140
>>> import requests
124
141
>>> payload = {"key1":"value1","key2":"value2"}
125
142
>>> r = requests.post("http://httpbin.org/post")
126
143
>>> r1 = requests.post("http://httpbin.org/post", data=payload)
127
144
128
- r没有加data的请求,看看效果 :
145
+ r没有加data的请求,得到的效果是 :
129
146
130
147
![ ] ( http://wxpictures.qiniudn.com/requets-post1.jpg )
131
148
132
- r1是加了data的请求,看效果 :
149
+ r1为data提供了值,再看效果 :
133
150
134
151
![ ] ( http://wxpictures.qiniudn.com/requets-post2.jpg )
135
152
136
- 多了form项。喵。
153
+ 新闻比较看才有意思,代码也如此。比较上面两个结果,发现后者当data被赋值之后,在结果中form的值即为data所传入的数据,它就是post给服务器的内容。喵...
137
154
138
155
###http头部
139
156
140
157
>>> r.headers['content-type']
141
158
'application/json'
142
159
143
- 注意,在引号里面的内容,不区分大小写` 'CONTENT-TYPE' ` 也可以。
160
+ 注意,在引号里面的内容,不区分大小写( ` 'CONTENT-TYPE' ` 也可以) 。
144
161
145
162
还能够自定义头部:
146
163
147
164
>>> r.headers['content-type'] = 'adad'
148
165
>>> r.headers['content-type']
149
166
'adad'
150
167
151
- 注意,当定制头部的时候,如果需要定制的项目有很多,需要用到数据类型为字典 。
168
+ 注意,当定制头部的时候,如果需要定制的项目有很多,一般用到字典类型的数据 。
152
169
153
170
网上有一个更为详细叙述有关requests模块的网页,可以参考:[ http://requests-docs-cn.readthedocs.org/zh_CN/latest/index.html ] ( http://requests-docs-cn.readthedocs.org/zh_CN/latest/index.html )
154
171
172
+ 通过一个实例,展示第三方模块的应用方法,其实没有什么特殊的地方,只要安装了,就和用标注库模块一样了。
173
+
174
+ 根据我的个人经验,第三方模块常常在某个方面做得更好,或者性能更优化,所以,不要将其放在我们的视野之外。
175
+
155
176
------
156
177
157
178
[ 总目录] ( ./index.md )   ;  ;  ; |  ;  ;  ; [ 上节:标准库(8)] ( ./227.md )   ;  ;  ; |  ;  ;  ; [ 下节:存入文件] ( ./229.md )
0 commit comments