學習Pytho爬蟲常常會用到的一些庫!
學 Python,想必大家都是從爬蟲開始的吧。畢竟網上類似的資源很豐富,開源專案也非常多。下面小千就為大家介紹下學習Pytho爬蟲常常會用到的一些庫。
一、 通用
urllib -網路庫(stdlib)。
requests -網路庫。
grab – 網路庫(基於pycurl)。
pycurl – 網路庫(繫結libcurl)。
urllib3 – Python HTTP庫,安全連線池、支援檔案post、可用性高。
httplib2 – 網路庫。
RoboBrowser – 一個簡單的、極具Python風格的Python庫,無需獨立的瀏覽器即可瀏覽網頁。
MechanicalSoup -一個與網站自動互動Python庫。
mechanize -有狀態、可程式設計的Web瀏覽庫。
socket – 底層網路介面(stdlib)。
Unirest for Python – Unirest是一套可用於多種語言的輕量級的HTTP庫。
hyper – Python的HTTP/2客戶端。
PySocks – SocksiPy更新並積極維護的版本,包括錯誤修復和一些其他的特徵。作為socket模組的直接替換。
二、 網路爬蟲框架
1. 功能齊全的爬蟲
grab – 網路爬蟲框架(基於pycurl/multicur)。
scrapy – 網路爬蟲框架(基於twisted),不支援Python3。
pyspider – 一個強大的爬蟲系統。
cola – 一個分散式爬蟲框架。
2. 其他
portia – 基於Scrapy的視覺化爬蟲。
restkit – Python的HTTP資源工具包。它可以讓你輕鬆地訪問HTTP資源,並圍繞它建立的物件。
demiurge – 基於PyQuery的爬蟲微框架。
三、 HTML/XML解析器
1. 通用
lxml – C語言編寫高效HTML/ XML處理庫。支援XPath。
cssselect – 解析DOM樹和CSS選擇器。
pyquery – 解析DOM樹和jQuery選擇器。
BeautifulSoup – 低效HTML/ XML處理庫,純Python實現。
html5lib – 根據WHATWG規範生成HTML/ XML文件的DOM。該規範被用在現在所有的瀏覽器上。
feedparser – 解析RSS/ATOM feeds。
MarkupSafe – 為XML/HTML/XHTML提供了安全轉義的字串。
xmltodict – 一個可以讓你在處理XML時感覺像在處理JSON一樣的Python模組。
xhtml2pdf – 將HTML/CSS轉換為PDF。
untangle – 輕鬆實現將XML檔案轉換為Python物件。
2. 清理
Bleach – 清理HTML(需要html5lib)。
sanitize – 為混亂的資料世界帶來清明。
四、 文字處理:用於解析和操作簡單文字的庫。
通用
difflib – (Python標準庫)幫助進行差異化比較。
Levenshtein – 快速計算Levenshtein距離和字串相似度。
fuzzywuzzy – 模糊字串匹配。
esmre – 正規表示式加速器。
ftfy – 自動整理Unicode文字,減少碎片化。
五、 自然語言處理:處理人類語言問題的庫。
NLTK -編寫Python程式來處理人類語言資料的最好平臺。
Pattern – Python的網路挖掘模組。他有自然語言處理工具,機器學習以及其它。
TextBlob – 為深入自然語言處理任務提供了一致的API。是基於NLTK以及Pattern的巨人之肩上發展的。
jieba – 中文分詞工具。
SnowNLP – 中文文字處理庫。
loso – 另一箇中文分詞庫。
六、 瀏覽器自動化與模擬
selenium – 自動化真正的瀏覽器(Chrome瀏覽器,火狐瀏覽器,Opera瀏覽器,IE瀏覽器)。
Ghost.py – 對PyQt的webkit的封裝(需要PyQT)。
Spynner – 對PyQt的webkit的封裝(需要PyQT)。
Splinter – 通用API瀏覽器模擬器(selenium web驅動,Django客戶端,Zope)。
七、 多重處理
threading – Python標準庫的執行緒執行。對於I/O密集型任務很有效。對於CPU繫結的任務沒用,因為python GIL。
multiprocessing – 標準的Python庫執行多程式。
celery – 基於分散式訊息傳遞的非同步任務佇列/作業佇列。
concurrent-futures – concurrent-futures 模組為呼叫非同步執行提供了一個高層次的介面。
八、 非同步:非同步網路程式設計庫
asyncio – (在Python 3.4 +版本以上的 Python標準庫)非同步I/O,時間迴圈,協同程式和任務。
Twisted – 基於事件驅動的網路引擎框架。
Tornado – 一個網路框架和非同步網路庫。
pulsar – Python事件驅動的併發框架。
diesel – Python的基於綠色事件的I/O框架。
gevent – 一個使用greenlet 的基於協程的Python網路庫。
eventlet – 有WSGI支援的非同步框架。
Tomorrow – 非同步程式碼的奇妙的修飾語法。
九、 佇列
celery – 基於分散式訊息傳遞的非同步任務佇列/作業佇列。
huey – 小型多執行緒任務佇列。
mrq – Mr. Queue – 使用redis & Gevent 的Python分散式工作任務佇列。
RQ – 基於Redis的輕量級任務佇列管理器。
simpleq – 一個簡單的,可無限擴充套件,基於Amazon SQS的佇列。
python-gearman – Gearman的Python API。
十、 雲端計算
picloud – 雲端執行Python程式碼。
dominoup.com – 雲端執行R,Python和matlab程式碼
十一、 網頁內容提取:提取網頁內容的庫
HTML頁面的文字和後設資料 newspaper – 用Python進行新聞提取、文章提取和內容策展
html2text – 將HTML轉為Markdown格式文字
python-goose – HTML內容/文章提取器
lassie – 人性化的網頁內容檢索工具
十二、 WebSocket:用於WebSocket的庫
Crossbar – 開源的應用訊息傳遞路由器(Python實現的用於Autobahn的WebSocket和WAMP)。
AutobahnPython – 提供了WebSocket協議和WAMP協議的Python實現並且開源。
WebSocket-for-Python – Python 2和3以及PyPy的WebSocket客戶端和伺服器庫。
十三、 DNS解析
dnsyo – 在全球超過1500個的DNS伺服器上檢查你的DNS。
pycares – c-ares的介面。c-ares是進行DNS請求和非同步名稱決議的C語言庫。
十四、 計算機視覺
OpenCV – 開源計算機視覺庫。
SimpleCV – 用於照相機、影像處理、特徵提取、格式轉換的簡介,可讀性強的介面(基於OpenCV)。
mahotas – 快速計算機影像處理演算法(完全使用 C++ 實現),完全基於 numpy 的陣列作為它的資料型別。
十五、 代理伺服器
shadowsocks – 一個快速隧道代理,可幫你穿透防火牆(支援TCP和UDP,TFO,多使用者和平滑重啟,目的IP黑名單)。
tproxy – tproxy是一個簡單的TCP路由代理(第7層),基於Gevent,用Python進行配置。
關於框架的選擇誤區
在框架的選擇問題上,許多人很容易就陷入了下面兩個誤區中而不自知 ~
哪個框架比較好 ——世上沒有最好的框架,只有最適合你自己、最適合你的團隊的框架。
程式語言選擇也是一個道理,你的團隊 Python最熟就用Python好了,如果最熟悉的是Ruby那就用Ruby好了,程式語言、框架都只是工具,能多、快、好、省的幹完活就是好東西。
過分關注效能 ——其實大部分人是沒必要太關心框架的效能的,因為你開發的網站根本就是個小站,能上1萬的IP的網站已經不多了,上10萬的更是很少很少。
在沒有一定的訪問量前談效能其實是沒有多大意義的,因為你的 CPU和記憶體一直就閒著呢。
本文來自千鋒教育,轉載請註明出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2779016/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 爬蟲學習中的一些總結爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 爬蟲需要用到的包爬蟲
- 爬蟲學習之基於Scrapy的網路爬蟲爬蟲
- 爬蟲學習-初次上路爬蟲
- 爬蟲學習之一個簡單的網路爬蟲爬蟲
- python strip()函式 爬蟲用到Python函式爬蟲
- Python爬蟲學習筆記-2.Requests庫Python爬蟲筆記
- Android 淘寶 爬蟲 學習Android爬蟲
- 爬蟲學習日記(六)爬蟲
- 爬蟲學習日記(八)爬蟲
- 爬蟲學習日記(七)爬蟲
- 爬蟲學習日記(二)爬蟲
- 爬蟲學習日記(一)爬蟲
- 爬蟲學習日記(五)爬蟲
- 爬蟲學習日記(三)爬蟲
- python爬蟲學習1Python爬蟲
- 逆向爬蟲知識學習爬蟲
- selenium爬蟲學習1爬蟲
- Python爬蟲學習(5): 簡單的爬取Python爬蟲
- Python爬蟲:一些常用的爬蟲技巧總結Python爬蟲
- **一些會用到的js方法JS
- 什麼是爬蟲?學習Python爬蟲難不難?爬蟲Python
- 分散式爬蟲學習筆記分散式爬蟲筆記
- Python爬蟲學習系列教程Python爬蟲
- 爬蟲之CSS語法學習爬蟲CSS
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲
- 爬蟲學習日記(六)完成第一個爬蟲任務爬蟲
- Python機器學習會應用到哪些庫?Python入門學習Python機器學習
- 學習爬蟲必須學的基礎知識爬蟲
- 【0基礎學爬蟲】爬蟲基礎之網路請求庫的使用爬蟲
- 爬蟲學習筆記:練習爬取多頁天涯帖子爬蟲筆記
- 小白學python-爬蟲常用庫Python爬蟲
- Python爬蟲學習(6): 爬取MM圖片Python爬蟲
- 從零基礎開始學習Python爬蟲你需要注意的點以及如何學習爬蟲Python爬蟲
- Python爬蟲一般會用到什麼框架?常見框架推薦!Python爬蟲框架
- python爬蟲js逆向學習(二)Python爬蟲JS
- 爬蟲學習日記(十二)解析PDF爬蟲