爬蟲方向第三方庫:1、urllib3,一個Python HTTP庫,安全連接池、支持文件post、可用性高;2、MechanicalSoup,一個與網站自動交互Python庫;3、grab,一個基于pycurl/multicur的網絡爬蟲框架;4、portia,一個基于Scrapy的可視化爬蟲庫;5、Tornado,一個網絡框架和異步網絡庫;6、scrapy,一個網絡爬蟲框架。
本教程操作環境:windows7系統、Python3、Dell G3電腦。
這個列表包含與網頁抓取和數據處理的Python庫
網絡
- 通用
- 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模塊的直接替換。
- 異步
- treq – 類似于requests的API(基于twisted)。
- aiohttp – asyncio的HTTP客戶端/服務器(PEP-3156)。
網絡爬蟲框架
- 功能齊全的爬蟲
- grab – 網絡爬蟲框架(基于pycurl/multicur)。
- scrapy – 網絡爬蟲框架(基于twisted),不支持Python3。
- pyspider – 一個強大的爬蟲系統。
- 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實現。
- html5lib – 根據WHATWG規范生成HTML/ XML文檔的DOM。該規范被用在現在所有的瀏覽器上。
- feedparser – 解析RSS/ATOM feeds。
- MarkupSafe – 為XML/HTML/XHTML提供了安全轉義的字符串。
- xmltodict – 一個可以讓你在處理XML時感覺像在處理JSON一樣的Python模塊。
- xhtml2pdf – 將HTML/CSS轉換為PDF。
- untangle – 輕松實現將XML文件轉換為Python對象。
- 清理
- Bleach – 清理HTML(需要html5lib)。
- sanitize – 為混亂的數據世界帶來清明。
文本處理
用于解析和操作簡單文本的庫。
-
通用
-
difflib – (Python標準庫)幫助進行差異化比較。
-
Levenshtein – 快速計算Levenshtein距離和字符串相似度。
-
fuzzywuzzy – 模糊字符串匹配。
-
esmre – 正則表達式加速器。
-
ftfy – 自動整理Unicode文本,減少碎片化。
-
轉換
-
unidecode – 將Unicode文本轉為ASCII。
-
字符編碼
-
uniout – 打印可讀字符,而不是被轉義的字符串。
-
chardet – 兼容 Python的2/3的字符編碼器。
-
xpinyin – 一個將中國漢字轉為拼音的庫。
-
pangu.py – 格式化文本中CJK和字母數字的間距。
-
Slug化
-
awesome-slugify – 一個可以保留unicode的Python slugify庫。
-
python-slugify – 一個可以將Unicode轉為ASCII的Python slugify庫。
-
unicode-slugify – 一個可以將生成Unicode slugs的工具。
-
pytils – 處理俄語字符串的簡單工具(包括pytils.translit.slugify)。
-
通用解析器
-
PLY – lex和yacc解析工具的Python實現。
-
pyparsing – 一個通用框架的生成語法分析器。
-
人的名字
-
python-nameparser -解析人的名字的組件。
-
電話號碼
-
phonenumbers -解析,格式化,存儲和驗證國際電話號碼。
-
用戶代理字符串
-
python-user-agents – 瀏覽器用戶代理的解析器。
-
HTTP Agent Parser – Python的HTTP代理分析器。
特定格式文件處理
解析和處理特定文本格式的庫。
-
通用
-
tablib – 一個把數據導出為XLS、CSV、JSON、YAML等格式的模塊。
-
textract – 從各種文件中提取文本,比如 Word、PowerPoint、PDF等。
-
messytables – 解析混亂的表格數據的工具。
-
rows – 一個常用數據接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 將來還會提供