博客專欄

        EEPW首頁 > 博客 > Python視頻教程之零基礎學習Python爬蟲掌握哪些庫和框架分析

        Python視頻教程之零基礎學習Python爬蟲掌握哪些庫和框架分析

        發布人:扣丁學堂2 時間:2021-04-23 來源:工程師 發布文章

        隨著人工智能和機器學習的發展,各行各業職位正在逐漸被智能機器取替,為了應對被取替的風險,越來越多人開始學習編程,如今似乎要進入全民Python編程的時代了,Python是一門簡易而實用的一種語言,Python也是最適合0基礎學習的編程語言。Python的語法簡單,代碼可讀性高,容易入門。

        首先學習Python想必大家都是從爬蟲開始的吧,畢竟網上類似的資源很豐富,開源項目也非常多。Python作為一門面向對象的編程語言,簡潔的語法使得編寫數十行代碼即可實現爬蟲功能,獲取海量互聯網數據。Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲,那么當我們在瀏覽器中輸入一個url后回車,后臺會發生什么?


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

        查找域名對應的IP地址。

        向IP對應的服務器發送請求。

        服務器響應請求,發回網頁內容。

        瀏覽器解析網頁內容。

        那么零基礎學習Python培訓課程需要掌握哪些庫呢?

        通用:

        urllib-網絡庫(stdlib)。

        requests-網絡庫。

        grab–網絡庫(基于pycurl)。

        pycurl–網絡庫(綁定libcurl)。

        urllib3–PythonHTTP庫,安全連接池、支持文件post、可用性高。

        httplib2–網絡庫。

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

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

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

        socket–底層網絡接口(stdlib)。

        UnirestforPython–Unirest是一套可用于多種語言的輕量級的HTTP庫。

        hyper–Python的HTTP/2客戶端。

        PySocks–SocksiPy更新并積極維護的版本,包括錯誤修復和一些其他的特征。作為socket模塊的直接替換。

        網絡爬蟲框架

        功能齊全的爬蟲

        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/ATOMfeeds。

        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文本,減少碎片化。

        自然語言處理

        處理人類語言問題的庫。

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

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

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

        jieba–中文分詞工具。

        SnowNLP–中文文本處理庫。

        loso–另一個中文分詞庫。

        瀏覽器自動化與仿真

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

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

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

        Splinter–通用API瀏覽器模擬器(seleniumweb驅動,Django客戶端,Zope)。

        多重處理

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

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

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

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

        異步

        異步網絡編程庫

        asyncio–(在Python3.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–一個簡單的,可無限擴展,基于AmazonSQS的隊列。

        python-gearman–Gearman的PythonAPI。

        云計算

        picloud–云端執行Python代碼。

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

        網頁內容提取

        提取網頁內容的庫。

        HTML頁面的文本和元數據

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

        html2text–將HTML轉為Markdown格式文本。

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

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

        WebSocket

        用于WebSocket的庫。

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

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

        WebSocket-for-Python–Python2和3以及PyPy的WebSocket客戶端和服務器庫。

        DNS解析

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

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

        計算機視覺

        OpenCV–開源計算機視覺庫。

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

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

        web開發的一些框架

        1.Django
        Django是一個開源的Web應用框架,由Python寫成,支持許多數據庫引擎,可以讓Web開發變得迅速和可擴展,并會不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個框架入手。

        2.Flask
        Flask是一個輕量級的Web應用框架,使用Python編寫。基于WerkzeugWSGI工具箱和Jinja2模板引擎。使用BSD授權。

        Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。

        3.Web2py
        Web2py是一個用Python語言編寫的免費的開源Web框架,旨在敏捷快速的開發Web應用,具有快速、可擴展、安全以及可移植的數據庫驅動的應用,遵循LGPLv3開源協議。

        Web2py提供一站式的解決方案,整個開發過程都可以在瀏覽器上進行,提供了Web版的在線開發,HTML模版編寫,靜態文件的上傳,數據庫的編寫的功能。其它的還有日志功能,以及一個自動化的admin接口。

        4.Tornado
        Tornado即是一個Webserver(對此本文不作詳述),同時又是一個類web.py的micro-framework,作為框架Tornado的思想主要來源于Web.py,大家在Web.py的網站首頁也可以看到Tornado的大佬BretTaylor的這么一段話(他這里說的FriendFeed用的框架跟Tornado可以看作是一個東西):

        “[web.pyinspiredthe]WebframeworkweuseatFriendFeed[and]thewebappframeworkthatshipswithAppEngine…”

        因為有這層關系,后面不再單獨討論Tornado。

        5.CherryPy
        CherryPy是一種用于Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP服務器的功能,可與運行在最新版本的Python、Jython、Android上。

        以上就是關于扣丁學堂Python培訓之零基礎學習Python爬蟲掌握哪些庫和框架分析的詳細介紹,最后想要了解更多內容的小伙伴可以登錄扣丁學堂官網咨詢。扣丁學堂是專業的Python培訓機構,不僅有專業的老師和與時俱進的課程體系,還有大量的Python視頻教程供學員觀看學習,心動的小伙伴快快行動吧。扣丁學堂python學習交流群:816572891。微信號:codingbb

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: Python視頻

        技術專區

        關閉
        主站蜘蛛池模板: 江安县| 博爱县| 鄯善县| 福海县| 南昌市| 荔浦县| 柯坪县| 罗城| 汾阳市| 阳曲县| 佳木斯市| 句容市| 东乌| 巴塘县| 西丰县| 岳普湖县| 开江县| 嘉兴市| 营山县| 怀集县| 印江| 福安市| 兴宁市| 西宁市| 平顺县| 永城市| 岑溪市| 龙陵县| 密云县| 富裕县| 辉县市| 遂川县| 湘阴县| 梁山县| 聊城市| 阳高县| 柞水县| 通城县| 宝山区| 桂平市| 曲沃县|