Python開發簡單爬蟲【學習資料總結】

2020-12-11 騰訊網

一、簡單爬蟲架構

簡單爬蟲架構

運行流程

運行流程.png

1、調度器詢問URL管理器,是否有待爬URL?URL管理器返回是/否;

2、如果是,調度器會從URL管理器中取出一個待爬URL;

3、調度器將URL傳給下載器,下載網頁內容後返回給調度器;

4、調度器再將返回的網頁內容發送到解析器,解析URL內容,解析完成後返回有價值的數據和新的URL;

5、一方面,調度器將數據傳遞給應用進行數據的收集;另一方面,會將新的URL補充進URL管理器,若有URL管理器中含有新的URL,則重複上述步驟,直到爬取完所有的URL

6、最後,調度器會調動應用的方法,將價值數據輸出到需要的格式。

二、URL管理器和實現方法

防止重複抓取、防止循環抓取

URL管理器功能.png

支持的功能

添加新URL到待爬取集合中

判斷待添加的URL是否在容器中

判斷是否還有帶待爬取URL

獲取待爬取URL

將URL從待爬取移動到已爬取

實現方式

實現方式.png

將待爬取的URL和已爬取的URL存放在內容中。

將URL存放在關係型數據中

將URL存儲在緩存資料庫中

三、網頁下載器和urllib2模塊

網頁下載器類似於瀏覽器,會將網際網路對應的網頁以HTML的形式下載到本地,存儲成本地文件或內存字符串,然後進行後續的分析。

Python的網頁下載器

urllib2 (Python3以後將urllib2替換為urllib.request)

requests

urllib2

方法1:給定url,使用urllib2模塊的urlopen方法。

方法2:添加data,http header

向伺服器提交http的頭信息,形成一個data,可以向伺服器提交需要用戶輸入的數據。

添加頭信息

方法3:添加特殊情景的處理器

不同情景.png

比如需要登錄才能訪問的網頁,要添加cookie的處理。使用HTTPCookieProcessor

需要代理才能訪問的網頁使用ProxyHandler

需要HTTPS加密訪問的網站使用HTTPSHandler

有些URL存在相互自動跳轉的關係使用HTTPRedirectHandler進行處理。

將這些Handler傳送給urllib2的build_opener方法創建一個opener對象,再傳給urllib2的install_opener方法,urllib2這個模塊就具備了進行特殊情景處理的能力。

四、網頁解析器和BeautifulSoup

網頁解析器從HTML網頁字符串中提取出價值數據和新URL對象。

Python網頁解析器

正則表達式

html.parser

Beautiful Soup

lxml

後面三種是以結構化解析的方式進行解析DOM(Document Object Model)樹

DOM樹

Beautiful Soup

Python第三方庫,用於從HTML或XML中提取數據

官網:https://www.crummy.com/software/BeautifulSoup/

中文文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

安裝測試

語法

BeautifulSoup語法.png

訪問節點信息

五、實戰練習

開發爬蟲的步驟

開發爬蟲步驟

python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例)

(1)Python3入門,數據類型,字符串

(2)判斷/循環語句,函數,

(3)類與對象,繼承,多態

(4)tkinter界面編程

(5)文件與異常,數據處理簡介

(6)Pygame實戰飛機大戰

python語言高級:(python語言的高級庫,常用的企業級開發案例實戰)

(1)Python常見第三方庫與網絡編程

(2)面向對象,Python正則表達式

(3)求職數據爬蟲,金融數據爬蟲,多線程爬蟲

(4)Python線程、進程

(5)Python mysql資料庫應用,Nosql資料庫,sql,jython

python全棧工程師前端 (學會開發前端網頁,會使用流行的前端框架)

(1) HTML+css

(5) 網頁界面設計實戰

(6) javaScript+ajax

(7) jquerry

(8) jquerry EasyUI, Mobile簡介,photoshop

(9) Bootstrap

python全棧工程師後端 (常用的後端架構和企業項目實戰)

(1) Django入門

(2) Django高級

(3) Django實戰

(4) Flask開發原理

(5) Flask開發項目實踐

(6) Tornado開發原理

(7) Tornado開發項目實踐

Linux基礎 (linux入門,和python結合可以找linux+python運維的工作)

(1)虛擬機安裝

(2)linux伺服器安裝與配置

(3)apache伺服器與nginx伺服器安裝與使用

(4)linux常用伺服器命令

(5)Python-WEB伺服器運行環境與配置

(6)版本管理工具svn

(7)版本管理工具git

(8)程序部署與網站遷移

Linux運維自動化開發 (Linux中比較深度的案例和實戰)

(1) Python開發Linux運維

(2) Linux運維報警工具開發

(3) Linux運維報警安全審計開發

(4) Linux業務質量報表工具開發

(5) Kali安全檢測工具檢測

(6) Kali 密碼破解實戰

python數據分析 (分析爬蟲抓取的數據,分析規律,用於商業化)

(1) numpy數據處理

(2) pandas數據分析

(3) matplotlib數據可視化

(4) scipy數據統計分析

(5) python 金融數據分析

python大數據 (Python操作大數據很方便)

(1) Hadoop HDFS

(2) python Hadoop MapReduce

(3) python Spark core

(4) python Spark SQL

(5) python Spark MLlib

python機器學習 (機器學習的一些入門概念和案例,python支持很多機器學習的框架)

(1) 機器學習基礎知識簡介

(2) KNN算法

(3) 線性回歸

(4) 邏輯斯蒂回歸算法

(5) 決策樹算法

(6) 樸素貝葉斯算法

(7) 支持向量機

(8) 聚類k-means算法

相關焦點

  • python開發爬蟲有門檻嗎?
    如果你不是科班出身,沒有開發經驗,初次接觸開發爬蟲這檔子事兒,相信這篇文章能幫到你。python開發爬蟲肯定是有門檻的。儘管python很簡單,上手不難,但是開發起來你會發現,開發爬蟲不只是單單會python就可以了,你還得需要下列這些技能。
  • python 爬蟲學習路線:從入門到進階
    在目標的驅動下,你的學習才會更加精準和高效。那些所有你認為必須的前置知識,都是可以在完成目標的過程中學到的。這裡給你一條平滑的、快速入門的學習路徑。本文依舊需要有一些python基礎,至少要求掌握python語法。
  • python爬蟲學習之路-抓包分析
    抓包的作用我把抓包分析的作用簡單列一下:分析請求的headers等等,可以加載到你的爬蟲中,偽裝成瀏覽器。往往可以躲過簡單的反扒策略登錄狀態獲取,如果我們在瀏覽器中登錄,抓包拿到cookies,加到我們的爬蟲中,往往就可以繞過登錄這道坎,爬蟲直接登堂入室,抓取更有價值的數據post請求,例如頁面中通過post提交的表單。
  • python爬蟲――寫出最簡單的網頁爬蟲
    最近對python爬蟲有了強烈地興趣,在此分享自己的學習路徑,歡迎大家提出建議。我們相互交流,共同進步。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2
  • 非科班出身自學Python,難嗎?講解Python學習路線實用方法
    於是,開始了我的python學習之旅。二、入門於是我開始搜尋各種Python相關的資料,在網上找視頻,加社群。還有去了解各種開發工具。我逛遍了所有的Python平臺,知乎、廖雪峰,騰訊課堂,網易雲課堂等等。
  • 5年開發老程式設計師告訴你編程初學者開始寫Python爬蟲技巧
    剛開始對爬蟲不是很了解,又沒有任何的計算機、編程基礎,確實有點懵逼。從哪裡開始,哪些是最開始應該學的,哪些應該等到有一定基礎之後再學,也沒個清晰的概念。在這裡我還是要介紹一下小編的學習交流的群,有什麼不懂的問題,都可以在群裡踴躍發言,需要啥資料隨時在群文件裡面獲取自己想要的資料。
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    那今天就來說說學python這件事兒吧,從三個方面來說:第一,學了python之後轉行找工作的問題;第二,具體的學習方法;第三,講講學了python之後應用於辦公自動化和寫爬蟲。4600字。關於恰飯:不用猜了,這篇依舊沒有廣告。
  • Python爬蟲入門,快速抓取大規模數據
    大到各類搜尋引擎,小到日常數據採集,都離不開網絡爬蟲。爬蟲的基本原理很簡單,遍歷網絡中網頁,抓取感興趣的數據內容。這篇文章會從零開始介紹如何編寫一個網絡爬蟲抓取數據,然後會一步步逐漸完善爬蟲的抓取功能。
  • python爬蟲篇一:最直白,易懂的爬蟲講解!
    當然,我說的比較簡單,頂級的爬蟲程序,比如「百度蜘蛛」「搜狗爬蟲」,它們都分布式地布置在許多伺服器上,源碼和功能都複雜得多。我們的每一個行為都已經被爬蟲給記錄下來,將信息提交給一個「推薦機制」的算法,最終得到如何推薦,推薦什麼的結論。4. 是個人娛樂的源泉。學習了爬蟲,我們就成為了掌控數據的王。我們可以在不違法的前提下,爬取所有我們想要的東西。自己預測炒股,下載不提供下載功能的視頻等等。只要你的想像力無限大,爬蟲的能力就無限大。但是,掌握了爬蟲技術,也不可為所欲為。
  • Python 爬蟲「學前班」!學會免踩坑!
    雖然說這種基於網頁內容的爬蟲可以減少爬蟲的數量,但是需要人工參與進行訓練 NLP 模型,沒有 AI 開發經驗或 AI 開發經驗很少的程式設計師很難寫出這類爬蟲,並且爬蟲爬取時間很長效率還很低。2.基於DOM結構的爬蟲基於DOM結構的爬蟲相對來說比較簡單,就是將 HTML 解析為 DOM 樹,然後根據語法結構進行提取信息,這種方法效率和準確性都比前一種方法高。3.
  • Python爬蟲從入門到精通只需要三個月
    如何入門Python,為了能夠幫助大家更輕鬆的學好Python開發,Python爬數據,Python數據分析等相關理論知識,給大家共同分享自己一套Python學習生活資料,文章最後面的有附屬的相關資料,無論你是大牛還是小白,是想轉行還是想入行都可以來了解,一起不斷進步以及一起努力學習
  • 大佬總結:0基礎如何學習Python?
    代碼量C:Java:python=1000:100:10。3、人工智慧,大量靠Python人工智慧的開源框架,其實很多是python完成的。這使得Python在AI開發方面佔據很大的優勢:python入門AI,是相當聰明、高效的選擇了。
  • Python資料全家桶—網絡爬蟲入門到實踐,共計4.2G
    前言網絡爬蟲是一個模擬人類請求網站行為的程序 ,可以自動請求網頁,並將數據抓取下來,然後使用一定的規則來提取有價值的數據。網絡爬蟲的分類:通用爬蟲、聚焦爬蟲。業界內也很少叫蜘蛛的, 一般都叫做網絡爬蟲, Spider只是個別爬蟲的名稱。建議將詞條名稱改為網絡爬蟲。
  • 簡單講解價值1K的Python爬蟲外包案例
    前言 本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯繫我們以作處理。 往期推薦 本篇文章就使用三種爬蟲模式爬取相關數據 1、常規爬取數據 2、多線程爬取數據 3、scrapy框架爬取數據 基本開發環境
  • Python新手學習網絡爬蟲要做什麼?
    傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,再不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。我們自學一段時間Python後想要學習網絡爬蟲,需要做些什麼嗎?Python網絡爬蟲學習,不需要你深入學習html,只要知道掌握它常用的簡單標籤跟知識點就行。
  • 大佬程式設計師給小白整理出的詳細Python爬蟲學習路線,機不可失!
    由於他簡單、易學、免費開源、可移植性、可擴展性等特點,Python又被稱之為膠水語言。下圖為主要程序語言近年來的流行趨勢,Python受歡迎程度扶搖直上。由於Python擁有非常豐富的庫,使其在數據分析領域也有廣泛的應用。由於Python本身有十分廣泛的應用,下面小編用積累Python編程的經驗給大家分析詳細Python爬蟲學習路線,供參考。
  • Python爬蟲入門教程:超級簡單的Python爬蟲教程
    這是一篇詳細介紹 Python 爬蟲入門的教程,從實戰出發,適合初學者。讀者只需在閱讀過程緊跟文章思路,理清相應的實現代碼,30 分鐘即可學會編寫簡單的 Python 爬蟲。寫一個簡單的 HTML通過編寫和修改 HTML,可以更好地理解 HTML。首先打開一個記事本,然後輸入下面的內容:
  • 全網最全的Python爬蟲知識點總結
    什麼是爬蟲。簡單一句話就是代替人去模擬瀏覽器進行網頁操作。爬蟲的作用。為其他程序提供數據源,如搜尋引擎(百度、Google等)、數據分析、大數據等等。爬蟲又分為這分類:分為通用爬蟲(搜尋引擎、聚焦爬蟲(12306搶票) 、增量式網絡爬蟲(Incremental Web Crawler)和深層網絡爬蟲。掌握爬蟲具體要學習哪些知識點了?
  • Python最佳經典學習路線
    如何學習Python python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例) (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,