爬蟲方向第三方庫:1、urllib3,一個Python HTTP庫,安全連接池、支持文件post、可用性高;2、MechanicalSoup,一個與網(wǎng)站自動交互Python庫;3、grab,一個基于pycurl/multicur的網(wǎng)絡(luò)爬蟲框架;4、portia,一個基于Scrapy的可視化爬蟲庫;5、Tornado,一個網(wǎng)絡(luò)框架和異步網(wǎng)絡(luò)庫;6、scrapy,一個網(wǎng)絡(luò)爬蟲框架。
本教程操作環(huán)境:windows7系統(tǒng)、Python3、Dell G3電腦。
這個列表包含與網(wǎng)頁抓取和數(shù)據(jù)處理的Python庫
網(wǎng)絡(luò)
- 通用
- urllib -網(wǎng)絡(luò)庫(stdlib)。
- requests -網(wǎng)絡(luò)庫。
- grab – 網(wǎng)絡(luò)庫(基于pycurl)。
- pycurl – 網(wǎng)絡(luò)庫(綁定libcurl)。
- urllib3 – Python HTTP庫,安全連接池、支持文件post、可用性高。
- httplib2 – 網(wǎng)絡(luò)庫。
- RoboBrowser – 一個簡單的、極具Python風(fēng)格的Python庫,無需獨(dú)立的瀏覽器即可瀏覽網(wǎng)頁。
- MechanicalSoup -一個與網(wǎng)站自動交互Python庫。
- mechanize -有狀態(tài)、可編程的Web瀏覽庫。
- socket – 底層網(wǎng)絡(luò)接口(stdlib)。
- Unirest for Python – Unirest是一套可用于多種語言的輕量級的HTTP庫。
- hyper – Python的HTTP/2客戶端。
- PySocks – SocksiPy更新并積極維護(hù)的版本,包括錯誤修復(fù)和一些其他的特征。作為socket模塊的直接替換。
- 異步
- treq – 類似于requests的API(基于twisted)。
- aiohttp – asyncio的HTTP客戶端/服務(wù)器(PEP-3156)。
網(wǎng)絡(luò)爬蟲框架
- 功能齊全的爬蟲
- grab – 網(wǎng)絡(luò)爬蟲框架(基于pycurl/multicur)。
- scrapy – 網(wǎng)絡(luò)爬蟲框架(基于twisted),不支持Python3。
- pyspider – 一個強(qiáng)大的爬蟲系統(tǒng)。
- cola – 一個分布式爬蟲框架。
- 其他
- portia – 基于Scrapy的可視化爬蟲。
- restkit – Python的HTTP資源工具包。它可以讓你輕松地訪問HTTP資源,并圍繞它建立的對象。
- demiurge – 基于PyQuery的爬蟲微框架。
HTML/XML解析器
- 通用
- lxml – C語言編寫高效HTML/ XML處理庫。支持XPath。
- cssselect – 解析DOM樹和CSS選擇器。
- pyquery – 解析DOM樹和jQuery選擇器。
- BeautifulSoup – 低效HTML/ XML處理庫,純Python實(shí)現(xiàn)。
- html5lib – 根據(jù)WHATWG規(guī)范生成HTML/ XML文檔的DOM。該規(guī)范被用在現(xiàn)在所有的瀏覽器上。
- feedparser – 解析RSS/ATOM feeds。
- MarkupSafe – 為XML/HTML/XHTML提供了安全轉(zhuǎn)義的字符串。
- xmltodict – 一個可以讓你在處理XML時感覺像在處理JSON一樣的Python模塊。
- xhtml2pdf – 將HTML/CSS轉(zhuǎn)換為PDF。
- untangle – 輕松實(shí)現(xiàn)將XML文件轉(zhuǎn)換為Python對象。
- 清理
- Bleach – 清理HTML(需要html5lib)。
- sanitize – 為混亂的數(shù)據(jù)世界帶來清明。
文本處理
用于解析和操作簡單文本的庫。
-
通用
-
difflib – (Python標(biāo)準(zhǔn)庫)幫助進(jìn)行差異化比較。
-
Levenshtein – 快速計算Levenshtein距離和字符串相似度。
-
fuzzywuzzy – 模糊字符串匹配。
-
esmre – 正則表達(dá)式加速器。
-
ftfy – 自動整理Unicode文本,減少碎片化。
-
轉(zhuǎn)換
-
unidecode – 將Unicode文本轉(zhuǎn)為ASCII。
-
字符編碼
-
uniout – 打印可讀字符,而不是被轉(zhuǎn)義的字符串。
-
chardet – 兼容 Python的2/3的字符編碼器。
-
xpinyin – 一個將中國漢字轉(zhuǎn)為拼音的庫。
-
pangu.py – 格式化文本中CJK和字母數(shù)字的間距。
-
Slug化
-
awesome-slugify – 一個可以保留unicode的Python slugify庫。
-
python-slugify – 一個可以將Unicode轉(zhuǎn)為ASCII的Python slugify庫。
-
unicode-slugify – 一個可以將生成Unicode slugs的工具。
-
pytils – 處理俄語字符串的簡單工具(包括pytils.translit.slugify)。
-
通用解析器
-
PLY – lex和yacc解析工具的Python實(shí)現(xiàn)。
-
pyparsing – 一個通用框架的生成語法分析器。
-
人的名字
-
python-nameparser -解析人的名字的組件。
-
電話號碼
-
phonenumbers -解析,格式化,存儲和驗證國際電話號碼。
-
用戶代理字符串
-
python-user-agents – 瀏覽器用戶代理的解析器。
-
HTTP Agent Parser – Python的HTTP代理分析器。
特定格式文件處理
解析和處理特定文本格式的庫。
-
通用
-
tablib – 一個把數(shù)據(jù)導(dǎo)出為XLS、CSV、JSON、YAML等格式的模塊。
-
textract – 從各種文件中提取文本,比如 Word、PowerPoint、PDF等。
-
messytables – 解析混亂的表格數(shù)據(jù)的工具。
-
rows – 一個常用數(shù)據(jù)接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 將來還會提供