记录一些不熟的 python3 的第三方库
不定时更新
Requests
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦
使用方法:http://blog.csdn.net/shanzhizi/article/details/50903748
======================================================================================
monkey patch
http://blog.leokim.cn/2017/05/15/%E7%8C%B4%E5%AD%90%E8%A1%A5%E4%B8%81monkey-patch/
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001407503089986d175822da68d4d6685fbe849a0e0ca35000
======================================================================================
gevent
gevent是基于协程的Python网络库
包含的特性:
1.基于libev的快速事件循环
2.基于greenlet的轻量级执行单元
3.重用Python标准库且概念相似的API
4.支持SSL的协作socket
5.通过c-ares或者线程池进行DNS查询
6.使用标准库和第三方库中使用了阻塞socket的代码的能力
支持Python版本:
>=2.6 和>=3.3
gevent是Python世界中最重要的异步网络库,可以大幅度提高系统的性能。最可贵的是,它允许我们几乎不修改代码,把同步程序变为异步程序。使用的技术就是我们之前讲过的monkey patch。
======================================================================================
asyncio
asyncio是在python3.4中被引进的异步IO库。
你也可以通过python3.3的pypi来安装它。
它相当的复杂,而且我不会介绍太多的细节。
相反,我将会解释你需要知道些什么,以利用它来写异步的代码。
简而言之,有两件事情你需要知道:协同程序和事件循环。
协同程序像是方法,但是它们可以在代码中的特定点暂停和继续。
当在等待一个IO(比如一个HTTP请求),同时执行另一个请求的时候,可以用来暂停一个协同程序。
我们使用关键字yield from来设定一个状态,表明我们需要一个协同程序的返回值。
而事件循环则被用来安排协同程序的执行。
======================================================================================
Logging
This module defines functions and classes which implement a flexible event logging system for applications and libraries.
The key benefit of having the logging API provided by a standard library module is that all Python modules can participate in logging, so your application log can include your own messages integrated with messages from third-party modules.
======================================================================================
ghost
这个库以前用过,能等页面所有的ajax返回完毕之后在爬取页面