156個Python網絡爬蟲資源,媽媽再也不用擔心你找不到資源!

本列表包含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 - 正則表達式加速器.

  • 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的谷歌語言檢測庫端口

瀏覽器自動化與仿真

  • 瀏覽器

  • 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

雲計算

電子郵件

電子郵件處理庫

  • 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 的數組作爲它的數據類型

代理服務器

  • shadowsocks - 一個快速隧道代理,可幫你穿透防火牆(支持TCP和UDP,TFO,多用戶和平滑重啓,目的IP黑名單)
  • tproxy - tproxy是一個簡單的TCP路由代理(第7層),基於Gevent,用Python進行配置

雜項

  • user_agent - 此模塊用於生成隨機,有效的Web導航器的配置和用戶代理HTTP header

其他


awesome系列真是碉堡了~今天把Python的爬蟲工具搬過來~
awesome原文
譯文原文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章