這里推薦的都是自己真正用過的,而且用過后無法自拔相見恨晚的庫。
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
這個庫主要是好玩,可以隨機生成各種各樣的名字,還能指定生成男人的名字和女人的名字,很多時候測試的時候有起名字綜合癥的同學可以使用這個庫生成原汁原味的英文名。
效果好不好,誰用誰知道。
登高而招,臂非加長也,而見者遠;順風而呼,聲非加疾也,而聞者彰。假輿馬者,非利足也,而致千里;假舟楫者,非能水也,而絕江河。君子生非異也,善假于物也。