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

2020-12-12 騰訊網

一、簡單爬蟲架構

簡單爬蟲架構

運行流程

運行流程.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,爬蟲開發的不二選擇
    請看下面描述:1)JAVAJava的語法比較規則,採用嚴格的面向對象編程方法,同時有很多大型的開發框架,比較適合企業級應用。Java的學習曲線較長,不僅要學習語言相關的特性,還要面向對象的軟體構造方法,在此之後要學習一些框架的使用方法。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2
  • Python爬蟲入門教程:超級簡單的Python爬蟲教程
    這是一篇詳細介紹 Python 爬蟲入門的教程,從實戰出發,適合初學者。讀者只需在閱讀過程緊跟文章思路,理清相應的實現代碼,30 分鐘即可學會編寫簡單的 Python 爬蟲。寫一個簡單的 HTML通過編寫和修改 HTML,可以更好地理解 HTML。首先打開一個記事本,然後輸入下面的內容:
  • Python資料全家桶—網絡爬蟲入門到實踐,共計4.2G
    前言網絡爬蟲是一個模擬人類請求網站行為的程序 ,可以自動請求網頁,並將數據抓取下來,然後使用一定的規則來提取有價值的數據。網絡爬蟲的分類:通用爬蟲、聚焦爬蟲。業界內也很少叫蜘蛛的, 一般都叫做網絡爬蟲, Spider只是個別爬蟲的名稱。建議將詞條名稱改為網絡爬蟲。
  • Python最佳經典學習路線
    如何學習Python python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例) (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,
  • Python學習步驟
    Python10大特點:易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。易於閱讀:Python代碼定義的更清晰。採用遊戲開發的方式,寓教於樂,快樂中掌握Python基礎。2. 手寫算法和數據結構。算法和數據結構是很多大公司面試的不二選擇,我們這裡講解內容的同時,手把手帶你實現一個個底層算法,將內功練紮實。3. 手寫神經網絡。
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • Python入門指南教程:10天學會使用python做爬蟲!免費領取!
    從去年開始,公眾號鋪天蓋地的python廣告,讓很多行外人也知道了python這個東西,python語言開始變得無所不能,剛畢業的新手用python能做什麼?對於圈外人聽起來好像很有誘惑力,每天幾小時,學習下來能做很多很多牛逼的事,甚至升職加薪,人生趟贏。但是,事情真的這麼簡單嗎?前些天我弟弟突然聊天,推薦我學python,我把聊天截圖給了學計算機的楊先生。
  • 喜歡用Python做爬蟲嗎?進度條了解下?自製一個進度條模塊!
    有的同學可能已經想到了,有2種辦法:一個是來自sys庫的sys.stdout.write()函數可以替代print的一個函數,具體的大家可以自行查找相關資料哦,我們今天用第二種辦法:print本身就有可以實現的辦法,比如下面的代碼,大家可以運行下!這段代碼會生成一個緩緩前行的『>』,是不是很簡單。
  • python爬蟲100個入門項目
    11新浪微博爬蟲分享(一天可抓取 1300 萬條數據)12新浪微博分布式爬蟲分享13python爬蟲教程,帶你從零到一14豆瓣讀書的爬蟲15鏈家網和貝殼網房價爬蟲群50清華大學網絡學堂爬蟲整理不易,希望大家多多支持,文章最後有供大家入門學習到進階的學習資料免費無償給大家,51去哪兒52前程無憂Python招聘崗位信息爬取分析53人人影視
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    想要入門Python 爬蟲首先需要解決四個問題:1.熟悉python編程2.了解HTML3.了解網絡爬蟲的基本原理4.學習使用python爬蟲庫1、熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。
  • 想自學Python來開發爬蟲,該如何制定學習計劃
    首先,Python語言是比較適合自學的,一方面Python語言的語法比較簡單,另一方面Python語言的應用場景非常多,相關的開發案例也非常多。自學Python可以按照以下幾個階段來進行:第一:Python基本語法的學習。學習Python的第一個階段是Python基本語法的學習,這個階段的學習一定要邊做實驗邊學習,而且實驗要有層次(驗證性實驗、綜合性實驗)來推進,這樣才會有一個比較好的學習效果。第二:重點練習爬蟲的開發。
  • Python真的值得學習嗎
    尤其是2017年人工智慧概念的興起,python的關注度也是越來越高。儘管目前它仍然無法和java等程式語言抗衡,但隨著未來人工智慧權重的提高,掌握python也就成為一種必然。它的開發效率比 C, Java 高很多,很多的創業公司當初為了把想法快速變成現實產品從而獲得投資資金,首選 Python作為開發語言。這估計也是當年推動python流行起來的另一個原因吧。
  • python為什麼叫爬蟲?為啥那麼多人通過python兼職都能掙不少錢?
    Python能做什麼之前有很多文章介紹python能做什麼。今天介紹python爬蟲的學習。網絡爬蟲 網絡爬蟲,也叫網絡蜘蛛(Web Spider)。開發環境:Win7+Python 2.7 64bit+PyCharm :環境配置方法自行百度推薦的python爬蟲學習書籍1.米切爾 (Ryan Mitchell) (作者), 陶俊傑 (譯者), 陳小莉 (譯者)的Python網絡數據採集2
  • Python爬蟲開發的就業前景如何
    首先,在當前的大數據應用環境下,如果單純做Python爬蟲開發,那麼在崗位競爭力上還是有所欠缺的。要想找到一個比較滿意的工作崗位,還需要進一步完善自身的知識結構。Python語言目前在整個IT行業有廣泛的應用,包括Web開發(傳統解決方案之一)、大數據開發、人工智慧開發(機器學習等)、嵌入式開發和各種後端服務開發,但是得益於大數據和人工智慧的發展,近幾年來Python語言有了明顯的上升趨勢,未來的發展空間還是非常值得期待的。
  • 牛逼,看完它,你就可以自己開發爬蟲了
    這裡總結一些用 nodejs 寫爬蟲的常用手段,學會了,就能爬取大部分網頁了。開發爬蟲的技巧很多也是復用的,記錄下來,日後能省不少事。寫爬蟲經常需要和它打交道,但是讀取 Cookie 的值不是很方便,這裡提供一個方法來簡單地獲取所需要的 Cookie 值,該方法同樣適用於獲取 Set-Cookie 的值。
  • 如何快速學會Python爬蟲(入門篇)
    ]網絡爬蟲(五):urllib2的使用細節與抓站技巧[Python]網絡爬蟲(六):一個簡單的百度貼吧的小爬蟲[Python]網絡爬蟲(七):Python中的正則表達式教程[Python]網絡爬蟲(八):糗事百科的網絡爬蟲(v0.3)源碼及解析(簡化更新)
  • 開課吧Python:Python爬蟲是什麼?爬蟲工程師薪資怎麼樣?
    Python爬蟲是什麼?Python爬蟲是什麼?Python爬蟲是由Python程序開發的網絡爬蟲(webspider,webrobot),是按照一定規則自動抓取全球資訊網信息的程序或腳本。其實一般是通過程序在網頁上獲取你想要的數據,也就是自動抓取數據。為什麼需要用爬蟲?