日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python應用庫大全總結

系統 1751 0

學Python,想必大家都是從爬蟲開始的吧。畢竟網上類似的資源很豐富,開源項目也非常多。

Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲

當我們在瀏覽器中輸入一個url后回車,后臺會發生什么?

簡單來說這段過程發生了以下四個步驟:

  1. 查找域名對應的IP地址。
  2. 向IP對應的服務器發送請求。
  3. 服務器響應請求,發回網頁內容。
  4. 瀏覽器解析網頁內容。

網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。通過指定url,直接返回給用戶所需要的數據,而不需要一步步人工去操縱瀏覽器獲取。

抓取這一步,你要明確要得到的內容是什么?是HTML源碼,還是Json格式的字符串等。將得到內容逐一解析就好。具體的如何解析,以及如何處理數據,文章后面提供了非常詳細的且功能強大的開源庫列表。

當然了,爬去別人家的數據,很有可能會遭遇反爬蟲機制的,怎么辦?使用代理。

適用情況:限制IP地址情況,也可解決由于“頻繁點擊”而需要輸入驗證碼登陸的情況。

這種情況最好的辦法就是維護一個代理IP池,網上有很多免費的代理IP,良莠不齊,可以通過篩選找到能用的。

對于“頻繁點擊”的情況,我們還可以通過限制爬蟲訪問網站的頻率來避免被網站禁掉。

有些網站會檢查你是不是真的瀏覽器訪問,還是機器自動訪問的。這種情況,加上User-Agent,表明你是瀏覽器訪問即可。有時還會檢查是否帶Referer信息還會檢查你的Referer是否合法,一般再加上Referer。也就是偽裝成瀏覽器,或者反“反盜鏈”。

對于網站有驗證碼的情況,我們有三種辦法:

使用代理,更新IP。

使用cookie登陸。

驗證碼識別。

接下來我們重點聊聊驗證碼識別。這個python q-u-n 227--435---450就是小編期待大家一起交流討論,各種入門資料啊,進階資料啊,框架資料啊 免費領取

可以利用開源的Tesseract-OCR系統進行驗證碼圖片的下載及識別,將識別的字符傳到爬蟲系統進行模擬登陸。當然也可以將驗證碼圖片上傳到打碼平臺上進行識別。如果不成功,可以再次更新驗證碼識別,直到成功為止。

好了,爬蟲就簡單聊到這兒,有興趣的朋友可以去網上搜索更詳細的內容。

文末附上本文重點:實用Python庫大全。

網絡

urllib -網絡庫(stdlib)。

requests -網絡庫。

grab ?C 網絡庫(基于pycurl)。

pycurl ?C 網絡庫(綁定libcurl)。

urllib3 ?C Python HTTP庫,安全連接池、支持文件post、可用性高。

httplib2 ?C 網絡庫。

RoboBrowser ?C 一個簡單的、極具Python風格的Python庫,無需獨立的瀏覽器即可瀏覽網頁。

MechanicalSoup -一個與網站自動交互Python庫。

mechanize -有狀態、可編程的Web瀏覽庫。

socket ?C 底層網絡接口(stdlib)。

網絡爬蟲框架

grab ?C 網絡爬蟲框架(基于pycurl/multicur)。

scrapy ?C 網絡爬蟲框架。

pyspider ?C 一個強大的爬蟲系統。

cola ?C 一個分布式爬蟲框架。

HTML/XML解析器

lxml ?C C語言編寫高效HTML/ XML處理庫。支持XPath。

cssselect ?C 解析DOM樹和CSS選擇器。

pyquery ?C 解析DOM樹和jQuery選擇器。

BeautifulSoup ?C 低效HTML/ XML處理庫,純Python實現。

html5lib ?C 根據WHATWG規范生成HTML/ XML文檔的DOM。該規范被用在現在所有的瀏覽器上。

feedparser ?C 解析RSS/ATOM feeds。

MarkupSafe ?C 為XML/HTML/XHTML提供了安全轉義的字符串。

文本處理

用于解析和操作簡單文本的庫。

difflib ?C (Python標準庫)幫助進行差異化比較。

Levenshtein ?C 快速計算Levenshtein距離和字符串相似度。

fuzzywuzzy ?C 模糊字符串匹配。

esmre ?C 正則表達式加速器。

ftfy ?C 自動整理Unicode文本,減少碎片化。

自然語言處理

處理人類語言問題的庫。

NLTK -編寫Python程序來處理人類語言數據的最好平臺。

Pattern ?C Python的網絡挖掘模塊。他有自然語言處理工具,機器學習以及其它。

TextBlob ?C 為深入自然語言處理任務提供了一致的API。是基于NLTK以及Pattern的巨人之肩上發展的。

jieba ?C 中文分詞工具。

SnowNLP ?C 中文文本處理庫。

loso ?C 另一個中文分詞庫。

瀏覽器自動化與仿真

selenium ?C 自動化真正的瀏覽器(Chrome瀏覽器,火狐瀏覽器,Opera瀏覽器,IE瀏覽器)。

Ghost.py ?C 對PyQt的webkit的封裝(需要PyQT)。

Spynner ?C 對PyQt的webkit的封裝(需要PyQT)。

Splinter ?C 通用API瀏覽器模擬器(selenium web驅動,Django客戶端,Zope)。

多重處理

threading ?C Python標準庫的線程運行。對于I/O密集型任務很有效。對于CPU綁定的任務沒用,因為python GIL。

multiprocessing ?C 標準的Python庫運行多進程。

celery ?C 基于分布式消息傳遞的異步任務隊列/作業隊列。

concurrent-futures ?C concurrent-futures 模塊為調用異步執行提供了一個高層次的接口。

異步

異步網絡編程庫

asyncio ?C (在Python 3.4 +版本以上的 Python標準庫)異步I/O,時間循環,協同程序和任務。

Twisted ?C 基于事件驅動的網絡引擎框架。

Tornado ?C 一個網絡框架和異步網絡庫。

pulsar ?C Python事件驅動的并發框架。

diesel ?C Python的基于綠色事件的I/O框架。

gevent ?C 一個使用greenlet 的基于協程的Python網絡庫。

eventlet ?C 有WSGI支持的異步框架。

Tomorrow ?C 異步代碼的奇妙的修飾語法。

隊列

celery ?C 基于分布式消息傳遞的異步任務隊列/作業隊列。

huey ?C 小型多線程任務隊列。

mrq ?C Mr. Queue ?C 使用redis & Gevent 的Python分布式工作任務隊列。

RQ ?C 基于Redis的輕量級任務隊列管理器。

simpleq ?C 一個簡單的,可無限擴展,基于Amazon SQS的隊列。

python-gearman ?C Gearman的Python API。

云計算

picloud ?C 云端執行Python代碼。

dominoup.com ?C 云端執行R,Python和matlab代碼

網頁內容提取

提取網頁內容的庫。

HTML頁面的文本和元數據

newspaper ?C 用Python進行新聞提取、文章提取和內容策展。

html2text ?C 將HTML轉為Markdown格式文本。

python-goose ?C HTML內容/文章提取器。

lassie ?C 人性化的網頁內容檢索工具

WebSocket

用于WebSocket的庫。

Crossbar ?C 開源的應用消息傳遞路由器(Python實現的用于Autobahn的WebSocket和WAMP)。

AutobahnPython ?C 提供了WebSocket協議和WAMP協議的Python實現并且開源。

WebSocket-for-Python ?C Python 2和3以及PyPy的WebSocket客戶端和服務器庫。

DNS解析

dnsyo ?C 在全球超過1500個的DNS服務器上檢查你的DNS。

pycares ?C c-ares的接口。c-ares是進行DNS請求和異步名稱決議的C語言庫。

計算機視覺

OpenCV ?C 開源計算機視覺庫。

SimpleCV ?C 用于照相機、圖像處理、特征提取、格式轉換的簡介,可讀性強的接口(基于OpenCV)。

mahotas ?C 快速計算機圖像處理算法(完全使用 C++ 實現),完全基于 numpy 的數組作為它的數據類型。

代理服務器

shadowsocks ?C 一個快速隧道代理,可幫你穿透防火墻(支持TCP和UDP,TFO,多用戶和平滑重啟,目的IP黑名單)。

tproxy ?C tproxy是一個簡單的TCP路由代理(第7層),基于Gevent,用Python進行配置。

另:Python有很多Web開發框架,大而全的開發框架非Django莫屬,用得也最廣泛.有很多公司有使用Django框架,如某狐,某訊等。以簡潔著稱的web.py,flask都非常易于上手,以異步高性能著稱的tornado,源代碼寫得美如畫,知乎,Quora都在用。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 定结县| 延川县| 诸城市| 舒城县| 霍山县| 余庆县| 嵊州市| 额济纳旗| 武义县| 遂川县| 叶城县| 古交市| 江西省| 上思县| 望谟县| 崇阳县| 阳谷县| 文昌市| 拜泉县| 富锦市| 勐海县| 舟山市| 深泽县| 灵宝市| 灵璧县| 麻江县| 孟村| 徐闻县| 阳曲县| 南通市| 乌什县| 南平市| 同仁县| 濉溪县| 南昌县| 孟津县| 电白县| 湖口县| 达拉特旗| 赣州市| 阜新市|