你知道學(xué)習(xí)python爬蟲需要掌握的庫嗎?

?
學(xué)習(xí)?Pyt?hon,大概?每個人?都是從?爬蟲?開始吧?。?
網(wǎng)絡(luò)?上類似?的資源?畢竟?很豐富?,開源項目?也很多?。
Pyt?hon學(xué)習(xí)網(wǎng)絡(luò)?爬行?器主要?分為?3大塊?:抓取?、分析?、存儲?。
在瀏覽器?中輸入?url?后回車?時,會出現(xiàn)?什么情況??
簡而言之?,這個?過程?分為?以下?四個?步驟?:
找出?域名?對應(yīng)?的IP地址?。
將請求?發(fā)送到?IP?對應(yīng)?的服務(wù)器?。
伺服器?回應(yīng)?要求?,返回?網(wǎng)頁內(nèi)容?。
瀏覽者?分析?網(wǎng)頁內(nèi)容?。
因此?,研究?爬行動物?需要?掌握?哪些?庫呢?
一般性?:
1.url?lib-Web?庫(stdlib?)
2re?quests?-NeTwo?rk庫。
3.grab?-基于?pycurl?的網(wǎng)絡(luò)?庫。
4p?ycurl?-NeTwo?rkLibrary?(綁定?libcurl?)。
url?lib3-Pyt?honHTT?P庫,安全?的連接池?,post?支持?文件?,高可用性?。
6.http?lib2-NeTwo?rkLibrary?。
7.?RoboBrows?er?——一個?簡單?的、極具?Pyt?hon風(fēng)格?的Pyt?hon庫,不需要?單獨?使用?瀏覽器?就可以在網(wǎng)上?瀏覽?。
8.MechanicalSoup-Pyt?hon庫與網(wǎng)站?自動?交互?。
9m?echanize-有狀態(tài)?的,可編程?的網(wǎng)絡(luò)?瀏覽?庫。
10?.soc?ke?t-stdlib?,即底層?網(wǎng)絡(luò)接口?。
11?.Unirest?for?Pyt?hon–Unirest?是一組?輕量級?HTT?P庫,可用于?多種語言?。
12?.hyp?er?-HTT?P/2客戶機?Pyt?hon。
13?.PySocks——SocksiPy的最新版本?,積極?維護?,包括?修復(fù)?錯誤?,以及?其他?一些?特性?。?
直接?替換?為soc?ke?t模塊?。
網(wǎng)路?爬行?器框架
一、全功能?爬蟲?。
Grab?-網(wǎng)絡(luò)?爬蟲框架(基于?pycurl?/multicur)。
腳本?–網(wǎng)絡(luò)?爬蟲框架(基于?Twisted?),Pyt?hon3不受?支持?。
Pyspider——一種?功能強大?的爬蟲?系統(tǒng)?。
Cola——分布式?爬行?框架?。
二、其他?。
portia?——基于?Scrapy的視覺?化爬蟲?。
re?stkit——用于?Pyt?hon的HTT?P資源?套件?。?
這使您能夠?輕松?地訪問?HTT?P資源?,并在其周圍?創(chuàng)建對象?。
demi?urge——基于?PyQuery的微爬框架?。
HTML?/XM?L解析?程序
一、一般性?。
lxml-編寫?高效?的HTML?/XM?L處理?庫的C語言?。?
支援?XPath。
cssselect——解析?DOM?樹和CSS?選擇器?。
pyquery——解析?DOM?樹和jQuery選擇符?。
beautifulSoup–低效率?的HTML?/XM?L處理?庫,一個?純Pyt?hon實現(xiàn)?。
Html5l?ib?——根據(jù)?WHATWG?規(guī)范?為HTML?/XM?L文檔?生成?DOM?。?
目前?,所有?瀏覽器?都使用?了該規(guī)范?。
Feedparser-RSS解析?/ATOMfeeds?。
Mark?upSafe?–提供?了一個?用于?XM?L/HTML?/XHTML的安全?轉(zhuǎn)義?字符串?。
xml?todict?——一個?Pyt?hon模塊?,它使您在處理?XM?L時有處理?JSON的感覺?。
xh?tml2p?df?-HTML?/CSS?到PDF?的轉(zhuǎn)換?。
簡單?實現(xiàn)?——很容易?實現(xiàn)?將XM?L文件轉(zhuǎn)換?成Pyt?hon對象?。
二、清理?。
清除?-清除?HTML?(需要?html5?lib)。
Sanitize——給混亂?的數(shù)據(jù)?世界?帶來?光明?。
文字處理
用來?分析?和處理?簡單?文字?的庫。
普通?。
Difflib–(Pyt?hon標(biāo)準(zhǔn)庫?)可以?幫助?進(jìn)行?區(qū)分?。
線性化?-快速?計算?線性化?距離?和字符串?相似度?。
Fuzzy?wuzzy——模糊匹配字符串?。
esmre?–re?gex加速器?。
自動?對Unicode文本?進(jìn)行?整理?,以減少?碎片?的數(shù)量?。
天然?語言?處理
用來?處理?人類?語言?的庫。
編寫?Pyt?hon程序?,以最好?的平臺?處理?人類?語言?的數(shù)據(jù)?。
模式?——Pyt?hon的網(wǎng)絡(luò)?挖掘?模塊?。?
擁有?自然語言?處理?、機器學(xué)習(xí)?等工具?。
文本?塊——提供?一致?的AP?I來進(jìn)行?自然語言?處理?任務(wù)?。?
它是建立?在NLTK和Pattern巨人?肩膀?之上?的。
Jie?ba——中文分詞?工具?。
Snow?NLP——中文?文字處理?類庫?。
loso——另一種中文?分類法?。
瀏覽?自動?和模擬?。
selenium–自動運行?真正?的瀏覽器?(Chrome,Firefox,Opera,IE?)。
ghost?.py-封裝?PyQt的web?kit?(需要?PyQT)。
Spynner–封裝?PyQt的web?kit?(PyQT是必需?的)。
spl?inter?-通用?AP?I瀏覽器?模擬器?(seleniumweb驅(qū)動?,Zope?,Django客戶端?)。
多項?處理
線程?在Pyt?hon標(biāo)準(zhǔn)庫?中運行?,threading?。?
非常適合?I/O密集型?任務(wù)?。?
由于?pythonGIL,不適合?CP?U綁定?任務(wù)?。
Multiprocessing?——運行?多進(jìn)程的標(biāo)準(zhǔn)?Pyt?hon庫。
異步?任務(wù)?隊列?/作業(yè)?隊列?,它基于?分布式?消息傳遞?。
配置?-配置?-配置?模塊?提供?了調(diào)用?異步?執(zhí)行?的高級?接口?。
非同步
非同步?網(wǎng)絡(luò)編程?庫
asyncio?–(高于?Pyt?hon3.4?+版本?的Pyt?hon標(biāo)準(zhǔn)庫?)異步?I/O、時間循環(huán)、協(xié)作?程序?和任務(wù)?。
Twist?ed?——基于?事件驅(qū)動?的網(wǎng)絡(luò)?引擎?框架?。
tor?nado——網(wǎng)絡(luò)?框架?和異步?網(wǎng)絡(luò)?庫。
發(fā)布?–事件驅(qū)動?的Pyt?hon并發(fā)?框架?。
Die?sel?——Pyt?hon基于?綠色?事件?的I/O框架?。
geven?t——一個?基于?協(xié)程?的Pyt?hon網(wǎng)絡(luò)?庫,使用?gre?enlet?。
ventlet?–支持?WSGI的異步?框架?。
Tomorro?w——一個?完美?的異步?代碼?修飾語?法。
排隊?。
異步?任務(wù)?隊列?/作業(yè)?隊列?,它基于?分布式?消息傳遞?。
Huey——小的多線程?任務(wù)?隊列?。
使用?red?is?&Gevent?的Pyt?hon分布式?工作任務(wù)?隊列?,mrq-Mr?.Queue-。
RQ?——一個?基于?Redis的輕量級?任務(wù)?隊列?管理器?。
simpleq——基于?Amazon?SQ?S的隊列?,簡單?,可無限?擴展?。
Pyt?hon-gearman——Gearman?的Pyt?honAP?I。
云
Picl?oud——Pyt?hon代碼?在云中?執(zhí)行?。
dominoup.com?——云執(zhí)行?R,Pyt?hon和matlab代碼?。
頁面?內(nèi)容?抽取?。
獲取?Web?內(nèi)容?的庫。
網(wǎng)頁?的文字?與元數(shù)據(jù)?。
新頁面?——使用?Pyt?hon來獲取?新聞?、提取?文章?以及?對內(nèi)容?進(jìn)行?規(guī)劃?。
html2t?ext–將HTML?文本?轉(zhuǎn)換?為Mark?dow?n格式?文本?。
python-goose-HTML?目錄?/文章?抽取?器。
lass?ie?——人性化?的網(wǎng)頁內(nèi)容?檢索工具?。
歡迎大家交流學(xué)習(xí)。