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

2021-01-09 騰訊網

一、簡單爬蟲架構

簡單爬蟲架構

運行流程

運行流程.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,爬蟲開發的不二選擇
    Java的學習曲線較長,不僅要學習語言相關的特性,還要面向對象的軟體構造方法,在此之後要學習一些框架的使用方法。(1)用途:Android & IOS 應用開發,視頻遊戲開發,桌面GUIs(即圖形用戶頁面),軟體開發,架構等。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2
  • 成都學習Python開發哪家好
    如何選擇成都python培訓機構? python程式語言語法清晰、乾淨、易讀、易維護、代碼量小、可讀性強。當團隊合作開發時,閱讀別人的代碼將是非常迅速和高效的。通俗說來就是「寫起來快、看起來明白!」所以近年來,python開發非常流行。
  • 簡單講解價值1K的Python爬蟲外包案例
    前言 本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯繫我們以作處理。 往期推薦 本篇文章就使用三種爬蟲模式爬取相關數據 1、常規爬取數據 2、多線程爬取數據 3、scrapy框架爬取數據 基本開發環境
  • Python爬蟲從入門到精通只需要三個月
    如何入門Python,為了能夠幫助大家更輕鬆的學好Python開發,Python爬數據,Python數據分析等相關理論知識,給大家共同分享自己一套Python學習生活資料,文章最後面的有附屬的相關資料,無論你是大牛還是小白,是想轉行還是想入行都可以來了解,一起不斷進步以及一起努力學習
  • Python學習步驟
    Python10大特點:易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。易於閱讀:Python代碼定義的更清晰。採用遊戲開發的方式,寓教於樂,快樂中掌握Python基礎。2. 手寫算法和數據結構。算法和數據結構是很多大公司面試的不二選擇,我們這裡講解內容的同時,手把手帶你實現一個個底層算法,將內功練紮實。3. 手寫神經網絡。
  • 如何開始寫你的第一個python腳本——簡單爬蟲入門!
    好多朋友在入門python的時候都是以爬蟲入手,而網絡爬蟲是近幾年比較流行的概念,特別是在大數據分析熱門起來以後,學習網絡爬蟲的人越來越多,哦對,現在叫數據挖掘了!其實,一般的爬蟲具有2個功能:取數據和存數據!好像說了句廢話。。。
  • python爬蟲入門實戰!爬取博客文章標題和連結!
    最近有小夥伴和我留言想學python爬蟲,那麼就搞起來吧。準備階段爬蟲有什麼用呢?舉個最簡單的小例子,你需要《戰狼2》的所有豆瓣影評。最先想的做法可能是打開瀏覽器,進入該網站,找到評論,一個一個複製到文本中,保存,翻頁,接著複製,直到翻到最後一頁。
  • Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲
    Python 數據處理 Python編程從入門到實踐 核心編程基礎教程 網絡爬蟲入門書籍 python視頻編程從入門到精通 程序設計教材人民郵電¥72.2領3元券話不多說,先來看看整個爬蟲過程吧!目標:廖雪峰官網—python教程工具:pycharm、python3.6、requests庫、time庫、lxml庫思路:85 抓取所有的目錄章節 url85 找到 url內教程主體所在的 div85 遍歷 div下所有標籤,文本和代碼部分內容直接保存85 區分其中的代碼、圖片、視頻 3個內容,
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • 想自學Python來開發爬蟲,該如何制定學習計劃
    首先,Python語言是比較適合自學的,一方面Python語言的語法比較簡單,另一方面Python語言的應用場景非常多,相關的開發案例也非常多。自學Python可以按照以下幾個階段來進行:第一:Python基本語法的學習。學習Python的第一個階段是Python基本語法的學習,這個階段的學習一定要邊做實驗邊學習,而且實驗要有層次(驗證性實驗、綜合性實驗)來推進,這樣才會有一個比較好的學習效果。第二:重點練習爬蟲的開發。
  • 「Python爬蟲與文本實例技術與應用」培訓班通知
    通過爬蟲獲取的海量信息,我們可以對其進行進一步的分析:市場預測、文本分析、機器學習方法等。     Python作為一門腳本語言,它靈活、易用、易學、適用場景多,實現程序快捷便利,早已經成為程式設計師們的一門編程利器。Python這門程式語言包羅萬象,可以說掌握了python,除了一些特殊環境和高度的性能要求,你可以用它做任何事。
  • Python爬蟲學到什麼程度就可以去找工作了?
    有朋友在群裡和大家討論,問的最多的問題就是,python 爬蟲學到什麼程度可以去找工作了,關於這點,和大家分享下我的理解。去招聘網上看看需求都有哪些,直接做個拉勾網爬蟲(有需要的私信)出結果了:仔細看看,我們可以得出以下幾點:1、 python 不是唯一可以做爬蟲的,很多語言都可以,
  • python為什麼叫爬蟲?為啥那麼多人通過python兼職都能掙不少錢?
    Python能做什麼之前有很多文章介紹python能做什麼。今天介紹python爬蟲的學習。網絡爬蟲 網絡爬蟲,也叫網絡蜘蛛(Web Spider)。開發環境:Win7+Python 2.7 64bit+PyCharm :環境配置方法自行百度推薦的python爬蟲學習書籍1.米切爾 (Ryan Mitchell) (作者), 陶俊傑 (譯者), 陳小莉 (譯者)的Python網絡數據採集2
  • 學習爬蟲思路分析
    前段時間可能大家被各大新聞爆出眾多爬蟲工程師程序猿被抓,且不知道犯了什麼罪;大家心中產生了疑問,那學爬蟲的意義到底為何呢,給大家插入一個連結是中華人民共和國國家網際網路信息辦公司的針對網絡爬蟲的法律規制(http://www.cac.gov.cn/2019-06/16/c_1124630015.htm)詳細閱讀,爬蟲並不違法,看你將他用在何處。
  • 牛逼,看完它,你就可以自己開發爬蟲了
    很多人問寫爬蟲用什麼語言比較好,其實就和談戀愛一樣,沒有最好的,只有最合適的,選擇你最熟悉最順手的語言就好。今年各種需求不斷,寫了幾個爬蟲,都是用的 nodejs。這裡總結一些用 nodejs 寫爬蟲的常用手段,學會了,就能爬取大部分網頁了。
  • python爬蟲-urllib、urllib2、requests三者關係
    只要人能看到的東西,理論上都是爬蟲可以獲取的。不論靜態頁面還是動態頁面。也不論pc端的頁面還是移動端的app。話有點大,但這就是本系列的目的。爬蟲編程,有很多語言可選,python、php、go、java···甚至是c。這裡我們選擇python作為爬蟲的程式語言,因為它簡單易上手,並且節約生命。
  • 從零開始寫Python爬蟲,四大工具你值得擁有!
    如果你正在學習編程,那麼「爬蟲」絕對是你不可忽視的。那麼,學習python爬蟲之前需要哪些準備?一顆熱愛學習,不屈不撓的心一臺有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)html相關的一些知識。
  • Python爬蟲開發的就業前景如何
    首先,在當前的大數據應用環境下,如果單純做Python爬蟲開發,那麼在崗位競爭力上還是有所欠缺的。要想找到一個比較滿意的工作崗位,還需要進一步完善自身的知識結構。Python語言目前在整個IT行業有廣泛的應用,包括Web開發(傳統解決方案之一)、大數據開發、人工智慧開發(機器學習等)、嵌入式開發和各種後端服務開發,但是得益於大數據和人工智慧的發展,近幾年來Python語言有了明顯的上升趨勢,未來的發展空間還是非常值得期待的。