尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
作者:賴明星
鏈接:
https://www.zhihu.com/question/24590883/answer/134253100
下面給大家推薦幾個我用過的,並且特別好用的項目,而不是簡單的貼一下awesome python。相信很多人看完awesome python以後,只是簡單的收藏一下,並沒有很多幫助。
1. yagmail
Python官網上發郵件的例子(Examples – Python 2.7.13 documentation),大家感受一下。反正我看到這一堆的import就已經被嚇退場了。
如果使用yagmail,發送一個帶附件的郵件,只需要2行代碼:
2. requests
requests很多人都推薦過了,不過可能一些同學感受不到requests到底好在哪里。我們就以官網的例子為例簡單說明,在沒有request之前,如果我們要請求https://api.github.com/user,需要像下面這樣:
用requests以後,做同樣的事情,我們可以這樣(注意,前3行代碼等於上面一整段代碼):
3. psutil
psutil是用來獲取操作系統監控以及進程管理的,如果你正在寫一個監控系統(或腳本),趕緊去試試。這麼說吧,我曾經使用psutil把網易內部的一個監控模塊,從1000+行重構到了100+行。
我這里推薦的幾個庫,可能yagmail對最多人有用。而psutil,對專業的人士最有用。如果你要寫一個監控系統,不使用psutil的話,只能直接去/proc目錄下讀取想用的文件進行計算,或者執行iostat、vmstat、df等linux命令獲取命令輸出,不管哪一種方法,都要處理很多繁瑣的細節。有了psutil以後,就輕鬆多了。貼段代碼大家感受一下:
此外,使用越來越廣泛的監控工具glances(如果沒用過,要不現在就是試試?),就是用psutil收集相關數據的。
4. BeautifulSoup
如果你寫爬蟲,還在用XPath解析HTML,那趕緊用用BeautifulSoup,比XPath好用一百倍;如果你還在用正則表達式從HTML中獲取內容,BeautifulSoup能讓你好用到哭。(補充:評論里大家都說XPath更好用,難道是我思維方式和大家不一樣?)
BeautifulSoup是用來解析HTML的,特點就是好用,有人吐槽BeautifulSoup慢?我不在乎BeautifulSoup比XPath慢多少,我只知道,我的時間比機器的更寶貴。
例如,要找到頁面中所有的links,如下所示:
例如,我在編寫知乎的爬蟲的時候,對於每一個用戶的」關注」頁面,對於每一個關注對象,有如下的tag:
所以,解析單個關注的用戶代碼如下所示:
有了BeautifulSoup以後,爬蟲操作就變得特別簡單了。臟活累活別人都幫忙做好了。
5. utils
除了開源的庫以外,還有些開源項目的DataStruct.py helper.py utils.py文件,也值得看一看。里面很多好東西,都是可以直接拿過來用的。<img src="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_b.jpg" data-rawwidth="652" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="652" data-original="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_r.jpg">
我舉幾個例子。
-
requests中的CaseInsensitiveDict(https://github.com/kennethreitz/requests/blob/v1.2.3/requests/structures.py#L37-L109),大家看名字就知道什麼意思了,我就不多說了。
-
werkzeug中的LocalProxy、ImmutableList、ImmutableDict(https://github.com/pallets/werkzeug/blob/master/werkzeug/datastructures.py#L128),其中ImmutableList和ImmutableDict大家一看就知道是什麼意思,這里要說的是LocalProxy,使用LocalProxy,分分鐘做到代理模式。
-
web.py的utils.py中各個函數和類都值得看一看(https://github.com/webpy/webpy/blob/master/web/utils.py#L48),不但可以了解好用的函數和數據結構,而且,還能夠學習一下高手的Python代碼。例如:
ps:web.py的作者是亞倫·斯沃茨(Aaron Swartz),一位年少成名的計算機天才,著名社交網站Reddit聯合創始人。致力於網路信息開放,卻因涉嫌非法侵入麻省理工學院(MIT)和JSTOR(全稱Journal Storage,存儲學術期刊的在線系統)被指控,將受到最高35年監禁和100萬美元罰款。該案正在認罪辯訴階段,而亞倫·斯沃茨卻於2013年1月11日在其紐約布魯克林的寓所內,用一根皮帶上吊自殺,屍體隨後被女友發現,年僅26歲。
Linux雲計算及運維架構師高薪實戰班「2018年12月10日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~ *聲明:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯繫我們刪除或授權事宜。 – 結束 –