源 / 伯樂頭條
這個列表包含與網頁抓取和數據處理的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模塊的直接替換。
異步
網絡爬蟲框架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對象。
清理
文本處理用於解析和操作簡單文本的庫。
difflib – (Python標準庫)幫助進行差異化比較。
Levenshtein – 快速計算Levenshtein距離和字符串相似度。
fuzzywuzzy – 模糊字符串匹配。
esmre – 正則表達式加速器。
ftfy – 自動整理Unicode文本,減少碎片化。
uniout – 列印可讀字符,而不是被轉義的字符串。
chardet – 兼容 Python的2/3的字符編碼器。
xpinyin – 一個將中國漢字轉為拼音的庫。
pangu.py – 格式化文本中CJK和字母數字的間距。
awesome-slugify – 一個可以保留unicode的Python slugify庫。
python-slugify – 一個可以將Unicode轉為ASCII的Python slugify庫。
unicode-slugify – 一個可以將生成Unicode slugs的工具。
pytils – 處理俄語字符串的簡單工具(包括pytils.translit.slugify)。
特定格式文件處理解析和處理特定文本格式的庫。
tablib – 一個把數據導出為XLS、CSV、JSON、YAML等格式的模塊。
textract – 從各種文件中提取文本,比如 Word、PowerPoint、PDF等。
messytables – 解析混亂的表格數據的工具。
rows – 一個常用數據接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 將來還會提供更多!)。
python-docx – 讀取,查詢和修改的Microsoft Word2007/2008的docx文件。
xlwt / xlrd – 從Excel文件讀取寫入數據和格式信息。
XlsxWriter – 一個創建Excel.xlsx文件的Python模塊。
xlwings – 一個BSD許可的庫,可以很容易地在Excel中調用Python,反之亦然。
openpyxl – 一個用於讀取和寫入的Excel2010 XLSX/ XLSM/ xltx/ XLTM文件的庫。
Marmir – 提取Python數據結構並將其轉換為電子表格。
PDFMiner – 一個從PDF文檔中提取信息的工具。
PyPDF2 – 一個能夠分割、合併和轉換PDF頁面的庫。
ReportLab – 允許快速創建豐富的PDF文檔。
pdftables – 直接從PDF文件中提取表格。
Python-Markdown – 一個用Python實現的John Gruber的Markdown。
Mistune – 速度最快,功能全面的Markdown純Python解析器。
markdown2 – 一個完全用Python實現的快速的Markdown。
自然語言處理處理人類語言問題的庫。
NLTK -編寫Python程序來處理人類語言數據的最好平臺。
Pattern – Python的網絡挖掘模塊。他有自然語言處理工具,機器學習以及其它。
TextBlob – 為深入自然語言處理任務提供了一致的API。是基於NLTK以及Pattern的巨人之肩上發展的。
jieba – 中文分詞工具。
SnowNLP – 中文文本處理庫。
loso – 另一個中文分詞庫。
genius – 基於條件隨機域的中文分詞。
langid.py – 獨立的語言識別系統。
Korean – 一個韓文形態庫。
pymorphy2 – 俄語形態分析器(詞性標註+詞形變化引擎)。
PyPLN – 用Python編寫的分布式自然語言處理通道。這個項目的目標是創建一種簡單的方法使用NLTK通過網絡接口處理大語言庫。
瀏覽器自動化與仿真selenium – 自動化真正的瀏覽器(Chrome瀏覽器,火狐瀏覽器,Opera瀏覽器,IE瀏覽器)。
Ghost.py – 對PyQt的webkit的封裝(需要PyQT)。
Spynner – 對PyQt的webkit的封裝(需要PyQT)。
Splinter – 通用API瀏覽器模擬器(selenium web驅動,Django客戶端,Zope)。
多重處理threading – Python標準庫的線程運行。對於I/O密集型任務很有效。對於CPU綁定的任務沒用,因為python GIL。
multiprocessing – 標準的Python庫運行多進程。
celery – 基於分布式消息傳遞的異步任務隊列/作業隊列。
concurrent-futures – concurrent-futures 模塊為調用異步執行提供了一個高層次的接口。
異步異步網絡編程庫
asyncio – (在Python 3.4 +版本以上的 Python標準庫)異步I/O,時間循環,協同程序和任務。
Twisted – 基於事件驅動的網絡引擎框架。
Tornado – 一個網絡框架和異步網絡庫。
pulsar – Python事件驅動的並發框架。
diesel – Python的基於綠色事件的I/O框架。
gevent – 一個使用greenlet 的基於協程的Python網絡庫。
eventlet – 有WSGI支持的異步框架。
Tomorrow – 異步代碼的奇妙的修飾語法。
隊列celery – 基於分布式消息傳遞的異步任務隊列/作業隊列。
huey – 小型多線程任務隊列。
mrq – Mr. Queue – 使用redis & Gevent 的Python分布式工作任務隊列。
RQ – 基於Redis的輕量級任務隊列管理器。
simpleq – 一個簡單的,可無限擴展,基於Amazon SQS的隊列。
python-gearman – Gearman的Python API。
雲計算電子郵件電子郵件解析庫
網址和網絡地址操作解析/修改網址和網絡地址庫。
URL
furl – 一個小的Python庫,使得操縱URL簡單化。
purl – 一個簡單的不可改變的URL以及一個乾淨的用於調試和操作的API。
urllib.parse – 用於打破統一資源定位器(URL)的字符串在組件(尋址方案,網絡位置,路徑等)之間的隔斷,為了結合組件到一個URL字符串,並將「相對URL」轉化為一個絕對URL,稱之為「基本URL」。
tldextract – 從URL的註冊域和子域中準確分離TLD,使用公共後綴列表。
網頁內容提取提取網頁內容的庫。
HTML頁面的文本和元數據
newspaper – 用Python進行新聞提取、文章提取和內容策展。
html2text – 將HTML轉為Markdown格式文本。
python-goose – HTML內容/文章提取器。
lassie – 人性化的網頁內容檢索工具
micawber – 一個從網址中提取豐富內容的小庫。
sumy -一個自動匯總文本文件和HTML網頁的模塊
Haul – 一個可擴展的圖像爬蟲。
python-readability – arc90 readability工具的快速Python接口。
scrapely – 從HTML網頁中提取結構化數據的庫。給出了一些Web頁面和數據提取的示例,scrapely為所有類似的網頁構建一個分析器。
WebSocket用於WebSocket的庫。
Crossbar – 開源的應用消息傳遞路由器(Python實現的用於Autobahn的WebSocket和WAMP)。
AutobahnPython – 提供了WebSocket協議和WAMP協議的Python實現並且開源。
WebSocket-for-Python – Python 2和3以及PyPy的WebSocket客戶端和伺服器庫。
DNS解析計算機視覺代理伺服器其他Python工具列表awesome-python
pycrumbs
python-github-projects
python_reference
pythonidae
如果你感覺僅僅是這些工具還不夠,你可以嘗試一下小象學院新推出的【爬蟲系統與數據處理實戰】(報名請點擊文末閱讀原文)
《爬蟲系統與數據處理實戰》
原價 ¥ 899.00
現超200人參團
楊真 資深軟體架構師
曾就職於Sun中國工程研究院、微軟(亞洲)網際網路工程院、騰訊北京無線事業部、完美世界等知名公司,早期負責Java虛擬機內核、移動端的產品和搜尋引擎的開發,目前帶領超過50人的資深研發團隊,從事基於大數據、人工智慧方面的產品開發,團隊涉及圖像處理(人臉識別、目標檢測)、自然語言處理(文本分類、關係抽取、機器翻譯、自動化摘要)、推薦系統、搜尋引擎、知識圖譜、自研圖資料庫、爬蟲、大數據存儲及挖掘、分布式系統架構、Web及移動端產品開發等技術領域。
1. 圍繞人工智慧的數據獲取應用案例來展開,旨在讓大家了解各個應用領域數據獲取的方法和技巧
2. 包含 Google、Wikipedia、微博、微信公眾號、淘寶及京東 等各類網站數據的獲取技術及方案
3. 介紹了諸如圖片識別、目標檢測、實體類型識別、文本分類、關係抽取、結構化信息、聊天機器人等數據的來源及獲取方式
4. 爬蟲的基礎技術課程,例如 HTTP、Python 的基礎等,以錄播的方式介紹,直播課程重點介紹爬蟲的應用場景
2018年4月17日 開課
在線直播,共12次課,每次2小時
每周2次(周二、周五,晚20:00 - 22:00)
直播後提供錄製回放視頻,可在線反覆觀看,有效期1年
第一課 靜態網頁爬蟲:爬蟲的基礎技術
1. HTML
2. CSS 選擇器
3. JavaScript 介紹
4. lxml 及 XPath
5. Python 裡的網絡請求
6. 第一個爬蟲:螞蜂窩的遊記
第二課 登錄及動態網頁的抓取
1. 表單
2. 網站登錄及Cookie
3. Headless 的瀏覽器:PhantomJS
4. 瀏覽器的驅動:Selenium
5. 動態網頁數據獲取
第三課 微博的抓取
1. 微博網站分布及結構分析
2. 通過動態頁面來抓取
3. 微博網絡接口的逆向分析
4. 利用API來抓取微博
第四課 微信公眾號抓取
1. AnyProxy 抓包工具
2. 微信公眾號接口分析
3. 利用 NodeJS 重定向接口
4. 後臺數據獲取及保存
5. 利用接口直接獲取所有歷史消息
6. 應對微信公眾號反爬蟲的架構設計
第五課 驗證碼的處理,京東、淘寶的數據抓取及存儲案例
1. 基於距離的圖片比對
2. 基於 TesseractOcr 的數字識別
3. 其它驗證碼識別方案
4. 京東數據抓取
5. 淘寶數據抓取
第六課 多線程與多進程的爬蟲
1. 線程與進程
2. Python 的多線程約束
3. 多個線程同時抓取
4. 多個進程同時抓取
5. 日誌系統設計
第七課 微博數據的存儲:分布式資料庫及應用
1. SQL 與 NoSQL
2. Hadoop 架構
3. HDFS
4. HBase
5. MongoDB
6. Redis
7. 基於分布式資料庫的分布式爬蟲
第八課 多機並行的微博抓取:分布式系統設計
1. 守護進程
2. Socket 編程
3. Master 設計
4. Slave 設計
5. 任務調度及通信協議
6. 分布式集群部署的爬蟲
第九課 PageRank、網頁動態重拍及應對反爬蟲技術的手段
1. PageRank 計算模型及推導
2. 網頁抓取順序重排
3. 網站服務架構
4. 尋找與利用分布式伺服器
5. 多IP技術與路由控制
6. 幾乎可以應對所有反爬規則的爬蟲系統架構
第十課 Scrapy 爬蟲框架介紹
1. Sample
2. 框架分析
3. 自動生成爬蟲
4. 控制臺
5. 流水線
6. 中間件
第十一課 文本自動抽取、網頁分類與針對文本的機器學習應用
1. 文本的自動化抽取
2. 文本分類
3. 網頁分類基礎
4. 分詞與特徵抽取
5. 線性回歸
6. SVM
7. Logistic Regession
8. 網頁分類
9. 多分類器
第十二課 信息檢索、搜尋引擎原理及應用
1. 搜尋引擎架構介紹
2. 正排表與倒排表
3. Bool 模型
4. Vector 模型
5. 概率模型
6. TF/IDF
7. Elastic Search
參團,諮詢,查看課程,請點擊【閱讀原文】
↓↓↓