真正好用的python库
这里推荐的都是自己真正用过的,而且用过后无法自拔相见恨晚的库。
requests
自从有了requests,老板再也不用担心http相关的各种需求了。
这个库是我安装完python环境后第一个安装的库,装上这个库再开始写代码才有底气,作者 Kenneth Reitz 是公认python领域代码写的最好的两个人之一,多才多艺,年轻有为。关于此人的各种趣事和牛逼之处可以点击阅读原文。
只要跟http请求相关的用这个库没错,专门为人类设计。
records
专为人类设计的SQL查询库,可以对接后端的各种关系数据库,不需要关心任何细节,只要一个url一个sql语句就搞定一切了。同时还提供了将各种查询结果导出到各种格式(CSV, XLS, JSON, HTML Tables)的功能。
就是这么简洁优雅。作者跟上面requests库的作者是同一个人。
maya
很多时候会遇到各种各样的日期相关的处理。比如获取个当前的时间戳啦,时间格式的字符串解析成日期格式啦,把昨天的年月日转成字符串啦等等,再加上日期格式本身就不固定,有各种各样的表现形式,有iso8601,rfc3339等等。
Kenneth Reitz应该也是被各种日期之间的转来转去搞烦了,于是玛雅出现了。
Kenneth Reitz小哥应该是XXX For Humans专业户,名下有各种各样的For Humans库。
fabric
现在分派一个任务给你,全新的操作系统,部署一个10个节点的XXX集群,每个节点的环境都一样,不过不同的节点配置文件格式和路径一致,但是内容略有差别,比如每个节点自己的配置文件要写入本地主机的内网IP和节点自身的ID(此ID从0递增,第一台ID是0,第二台ID是1...)
怎么弄呢,第一个事情肯定是先把程序分发到各个机器。然后ssh登陆到各个机器,通过VIM打开每个配置文件,修改两行...
像我这种对重复工作没有丝毫耐心的人来说,这么搞3台内心就已经发毛有砸键盘的冲动了,要是中途再出点什么别的错,那真是要骂娘了。
在知道fabric之前就是这么过来的,那个时候有五个分布式模块要部署,每个至少三个节点,不同的模块配置文件都不一样,部署完一套一个下午就过去了。
后来fabric拯救了我,花一个星期写好代码,只要一个命令,五分钟完事。自动分发,自动配置文件渲染,自动启动。省出来的多余的时间干什么呢,冲一杯咖啡,爱干什么干什么,省下的时间就是自己的。
peda
这是一个牛逼的GDB插件,主要是给那些搞二进制安全的家伙用的,对于底层的C/C++程序员也能起到一定的辅助作用。
自动打印出各种寄存器的值,当前栈的值,而且提供了多种安全相关的选项,这个库让GDB更加顺滑。
Beautiful Soup
可以说是python爬虫界最知名的一个库了,可以从html中提取任何你想要的元素,用起来也非常简单,提供了各种解析和遍历方式,Beautiful Soup会帮你节省数小时甚至数天的工作时间。
scrapy
一个非常犀利的爬虫框架。这个框架提供了一个爬虫的流水线处理方式,只需要按照scrapy提供的流程和接口写自己的业务代码就可以了,多线程,队列,http请求这些跟业务没什么关系的代码scrapy都帮忙搞定了。熟悉了套路之后可以说是一个爬虫的生产车间,一天可以搞5个爬虫。
我通常是scrapy结合requests和bs4一起用,既可以自己掌控爬虫的细节包括session管理和元素提取,又可以利用scrapy提供的流水线处理方式。
names
这个库主要是好玩,可以随机生成各种各样的名字,还能指定生成男人的名字和女人的名字,很多时候测试的时候有起名字综合症的同学可以使用这个库生成原汁原味的英文名。
效果好不好,谁用谁知道。
登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。