標籤:人性化 其他 名稱 selenium pen 標準庫 youtube awesome 表達
本列表包含Python網頁抓取和資料處理相關的庫。
網路相關
通用
urllib - 網路程式庫(標準庫)
requests - 網路程式庫
grab - 網路程式庫(基於pycurl)
pycurl - 網路程式庫 (與libcurl綁定)
urllib3 - 具有安全執行緒串連池、檔案psot支援、高可用的Python HTTP庫
httplib2 - 網路程式庫
RoboBrowser - 一個無需獨立瀏覽器即可訪問網頁的簡單、pythonic的庫
MechanicalSoup - 能完成自動網站互動的Python庫
mechanize - 有狀態、可程式化的網頁瀏覽庫。
socket - 底層網路介面(標準庫)
Unirest for Python - 一套支援多種語言的輕量級HTTP庫
hyper - Python HTTP/2用戶端
PySocks - SocksiPy持續更新並維護的版本,指出bug修複和一些其他功能,可以作為socket模組的替代品
非同步
treq - 基於twisted、與requests類似的API
aiohttp - asyncio的HTTP用戶端/伺服器 (PEP-3156)
網路爬蟲架構
全能型爬蟲
grab - 網路爬蟲架構(基於pycurl/multicurl)
scrapy - 網路爬蟲架構(基於twisted)
pyspider - 一個強力的爬蟲系統
cola - 一個分布式爬蟲架構
其他
portia - 基於Scrapy的可視化爬蟲
restkit - Python的HTTP資產庫。允許影虎簡單的訪問HTTP資源並用來建立項目
demiurge - 基於PyQuery的微型爬蟲架構
HTML/XML解析
通用
lxml - 高效的HTML/XML處理庫。支援XPATH,用C語言寫成
cssselect - 解析DOM樹和css選取器
pyquery - 解析DOM樹和jQuery選取器
BeautifulSoup - Python寫成的低效HTML/XMl處理庫
html5lib - 根據WHATWG規範產生HTML/ XML文檔的DOM。WHATWG規範是現在瀏覽器的通行規範
feedparser - 解析RSS/ATOM資訊流
MarkupSafe - Python的XML/HTML/XHTML安全逸出字元串工具
xmltodict - 讓你處理XML如同處理JSON一樣
xhtml2pdf - HTML/CSS to PDF轉化器
untangle - 講XML文檔轉化為Python項目以簡化處理難度
hodor - 支援lxml and cssselect的配置驅動封裝工具
清理
Bleach - 清理HTML (需求html5lib)
sanitize - 將混亂的資料世界恢複清楚
文本處理
解析及操作文本的庫
通用
difflib - 差異化計算工具(Python標準庫)
Levenshtein - 快速計算編輯距離及字串相似性
fuzzywuzzy - 模糊字串比匹配
esmre - Regex加速器.
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 - Python lex和yacc解析工具
pyparsing - 用於產生解析器的通用架構
人名
python-nameparser - 姓名解析組件
電話號碼
phonenumbers - 處理、格式化、儲存、驗證全球電話號碼
使用者代理程式字串
python-user-agents - 瀏覽器使用者代理程式解析器
HTTP Agent Parser - Python HTTP代理解析器
fake-useragent - 基於全球瀏覽器統計的Python使用者代理程式欺騙器
user_agent - 使用者代理程式資料產生器
特殊格式處理
處理特編輯特殊字元格式的庫
通用
tablib - 處理XLS, CSV, JSON, YAML等表格式資料的庫
textract - 從任何文檔中提取文本,支援Word, PowerPoint, PDF等
messytables - 雜亂的表格式資料解析
rows - 支援多種格式的通用且美觀的表格式資料處理器(現有CSV, HTML, XLS, TXT -- 即將支援更多)
Office
python-docx - 閱讀,查詢和修改Microsoft Word 2007/2008 docx檔案
xlwt / xlrd - 從Excel讀取及寫入資料和格式化資訊
XlsxWriter - 用於穿件Excel .xlsx檔案的Python模組
xlwings - 一個BSD許可的庫,是Excel與Python互相調用更加簡單
openpyxl - 可讀取、編輯Excel 2010xlsx/xlsm/xltx/xltm檔案的庫
Marmir - 提取Python資料結構並將其轉化為表格的庫
PDF
PDFMiner - 從PDF文檔中提取資訊的工具
PyPDF2 - 一個分割、合并、轉換PDF檔案的庫
ReportLab - 可以快速建立大量PDF文檔
pdftables - 從PDF檔案中精準提取表格
Markdown
Python-Markdown - 一個用Python實現的John Gruber的Markdown
Mistune - 速度最快,功能全面的Markdown純Python解析器
markdown2 - 一個完全用Python實現的快速的Markdown
YAML
PyYAML - 一個Python的YAML解析器
CSS
cssutils - 一個Python的CSS庫
ATOM/RSS
feedparser - 通用的feed解析器
SQL
sqlparse - 一個無驗證的SQL語句分析器
HTTP
http-parser - C語言實現的HTTP請求/響應訊息解析器
Microformats
opengraph - 一個用來解析Open Graph協議標籤的Python模組
可移植的執行體
pefile - 一個多平台的用於解析和處理可移植執行體(即PE)檔案的模組
PSD
psd-tools - 將Adobe Photoshop PSD(即PE)檔案讀取到Python資料結構
自然語言處理
自然語言處理庫
- NLTK - Python自然語言處理領先者
- Pattern - Python的網路挖掘模組。他有自然語言處理工具,機器學習以及其它
- TextBlob - 為深入處理自然語言的項目提供API,參考了NLTK及其他
- jieba - 中文分詞
- SnowNLP - 漢字文本處理庫
- loso - 中文分詞庫
- genius -基於條件隨機域的中文分詞
- langid.py - 獨立的語言識別系統
- Korean - 韓文形態庫
- pymorphy2 - 俄語形態分析器(詞性標註+屈折引擎)
- PyPLN - 用Python編寫的分布式自然語言處理通道。這個項目的目標是建立一種簡單的方法使用NLTK通過網路介面處理大語言庫
- langdetect - Python的Google語言偵測庫連接埠
瀏覽器自動化與模擬
瀏覽器
selenium - 自動化真實瀏覽器(Chrome, Firefox, Opera, IE)
Ghost.py - QtWebKit封裝(需求PyQT)
Spynner - 具備AJAX支援的程式化網頁瀏覽模組
Splinter - 通用API瀏覽器模擬器(selenium web驅動,Django用戶端,Zope)
Headless工具
xvfbwrapper - 用於在X虛擬框架緩衝區(Xvfb)中運行顯示的Python封裝器
多進程並發
- threading - Python標準庫的多線程運行。因為python GIL限制,對於I/O密集型任務很有效,對於CPU綁定的任務沒用
- multiprocessing - 多進程標準庫
- celery - 基於分布式訊息傳遞的非同步任務隊列/作業隊列
- concurrent-futures - concurrent.futures模組提供用於非同步執行callable的進階介面
非同步
非同步網路編程庫
- asyncio - 非同步I/O,時間迴圈,協同程式和任務(Python 3.4以上版本的Python標準庫)
- Twisted - 基於事件驅動的網路引擎架構
- Tornado - 一個Web架構及非同步網路程式庫
- pulsar - Python事件驅動的並發架構
- diesel - Python的基於Greenlet的I/O架構
- gevent - 一個基於協同程式的Python網路程式庫,使用greenlet
- 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代碼
電子郵件
電子郵件處理庫
- flanker - 電子郵件及MIME處理庫
- Talon - Mailgun庫用於提取訊息的報價和簽名
URL和網路地址操作
URL和網路地址操作庫
URL
furl - 一個小的Python庫,使得操縱URL簡單化
purl - 一個簡單的不可改變的URL以及一個乾淨的用於調試和操作的API
urllib.parse - 用於打破統一資源定位器(URL)的字串在組件(定址方案,網路位置,路徑等)之間的隔斷,為了結合組件到一個URL字串,並將“相對URL”轉化為一個絕對URL,稱之為“基本URL”(標準庫)
tldextract - 使用公用尾碼列表從URL的註冊域和子域中準確分離TLD
網路地址
netaddr - 用於顯示和操縱網路地址的Python庫
網頁內容提取
網頁內容提取庫
HTML頁面的文本和中繼資料
newspaper - 用Python進行新聞提取、文章提取和內容策展
html2text - 將HTML轉為Markdown格式文本
python-goose - HTML內容/文章提取器
lassie - 人性化的網頁內容檢索工具
micawber - 一個從網址中提取豐富內容的小型庫
sumy -一個自動匯總文字檔和HTML網頁的模組
Haul - 一個可擴充的映像爬蟲
python-readability - arc90 readability工具的快速Python介面
scrapely - 從HTML網頁中提取結構化資料的庫。給出了一些Web頁面和資料提取的樣本,scrapely為所有類似的網頁構建一個分析器
libextract - 從網站提取資料
視頻
youtube-dl - 一個從YouTube下載視頻的小型命令列工具
you-get - Python3寫成的YouTube/Youku/Niconico視頻下載工具
Wiki
WikiTeam - 下載並儲存wkiks的工具
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 - ic-ares的介面。c-ares是進行DNS請求和非同步名稱決議的C語言庫
電腦視覺
- OpenCV - 開源電腦視覺庫
- SimpleCV - 用於照相機、影像處理、特徵提取、格式轉換的簡介,可讀性強的介面(基於OpenCV)
- mahotas - 快速電腦影像處理演算法(完全使用 C++ 實現),完全基於 numpy 的數組作為它的資料類型
Proxy 伺服器
- shadowsocks - 一個快速隧道代理,可幫你穿透防火牆(支援TCP和UDP,TFO,多使用者和平滑重啟,目的IP黑名單)
- tproxy - tproxy是一個簡單的TCP路由代理(第7層),基於Gevent,用Python進行配置
雜項
- user_agent - 此模組用於產生隨機,有效Web導航器的配置和使用者代理程式HTTP header
其他
- awesome-python
- pycrumbs
- python-github-projects
- python_reference
- pythonidae
156個Python網路爬蟲資源