Python爬蟲(1.爬蟲的基本概念)
爬蟲的基本概念
1. 網路爬蟲的組成
網路爬蟲由控制結點、爬蟲結點、資源庫構成,如圖1 所示:
圖1 網路爬蟲的控制節點和爬蟲節點結構的關係
可以看到,網路爬蟲中可以有多個控制節點,每個控制節點下可以有多個爬蟲節點,控制節點之間可以互相通訊,同時,控制節點和其下的各爬蟲節點之間也可以進行互相通訊,屬於同一個控制節點下的各爬蟲節點間,亦可以互相通訊。
控制節點,也叫做爬蟲的中央控制器,主要負責根據URL地址分配執行緒,並呼叫爬蟲節點進行具體的爬行。
爬蟲節點會按照相關的演算法,對網頁進行具體的爬行,主要包括下載網頁以及對網頁的文字進行處理,爬行後,會將對應的爬行結果儲存到對應的資源庫中。
2. 網路爬蟲的型別,
1) 通用網路爬蟲
也叫做全網爬蟲,通用網路爬蟲爬取的目標在全網際網路中。其爬取的目標資料是巨大的,並且爬行的範圍也是非常大的,正是由於其爬取的資料是海量資料,故而對於這類爬蟲來說,其爬取的效能要求是非常高的。這種網路爬蟲主要應用於大型搜尋引擎中,有非常高的應用價值。
2) 聚焦網路爬蟲
也叫主題爬蟲,顧名思義,聚焦網路爬蟲是按照預先定義好的主題有選擇地進行網頁爬取的一種爬蟲。聚焦網路爬蟲不像通用網路爬蟲一樣將目標資源定位在全網際網路中,而是將爬取的目標網頁定位在相關主題的頁面中,此時可以大大節省爬蟲爬取時所需的頻寬資源和伺服器資源。聚焦網路主要應用在對特定資訊的爬取中,主要為某一類特定人群提供服務。
3) 增量式網路爬蟲
所謂增量式,對應著增量式更新。增量式更新指的是在更新的時候只更新改變的地方,而未改變的地方則不更新,所以增量式網路爬蟲,在爬取網頁的時候,只爬取內容發生變化的網頁或者新產生的網頁,對於未發生內容變化的網頁,則不會爬取。增量式網路爬蟲在一定程度上能夠保證所爬取的頁面,儘可能使新頁面。
4) 深層網路爬蟲
要介紹深層網路爬蟲,我們首先要介紹一下網頁的相關知識:
1.靜態網頁
所謂靜態網頁,就是網頁裡面沒有程式程式碼,不會被伺服器執行。這種網頁通常在伺服器以副檔名.htm或.html儲存,表示裡面的內容是以HTML語言編寫的。
HTML語言是由許多叫做標註(Tag)的元素組成的。這種語言指示了文字、圖形等元素在瀏覽器上面的配置、樣式以及這些元素實際上是存放於因特網上的哪個地方(地址),或點選了某段文字或圖形後,應該要連線到哪一個網址。我們在瀏覽這種副檔名為.htm的網頁的時候,網站伺服器不用執行任何程式就會把檔案傳給客戶端的瀏覽器直接進行解讀。所以除非網站設計師更新網頁檔案的內容,否則網頁的內容是不會因為執行程式而出現不同內容的。
2.深層頁面和表層頁面
網頁按存在方式分類,可以分為表層頁面和深層頁面。所謂表層頁面,指的是不需要提交表單,使用靜態的連結就能夠到達的靜態頁面;而深層頁面是需要提交一定的關鍵詞之後才能獲取的頁面。在網際網路中,深層頁面數量往往比表層頁面多得多
3網路爬蟲表單填寫
網路爬蟲表單填寫有兩種型別:①基於領域知識的表單填寫,就是建立一個填寫表單的關鍵詞庫,在需要填寫的時候,根據語義分析選擇對應的關鍵詞進行填寫;②基於網頁結構分析的表單填寫,簡單來說,這種填寫方式一般是領域知識有限的情況下使用,這種方式會根據網頁結構進行分析,並自動填寫表單。
最後,我們總結一下,深層網路爬蟲,就是爬取網際網路中的深層頁面的爬蟲。
3. 網路爬蟲的“技能”有什麼?
網路爬蟲技能總覽圖
網路爬蟲可以代替手工做很多事情,比如可以用於做搜尋引擎,也可以爬取網站上面的圖片,比如有些朋友將某些網站上的圖片全部爬取下來,集中進行瀏覽,同時,網路爬蟲也可以用於金融投資領域,比如可以自動爬取一些金融資訊,並進行投資分析等。
有時,我們比較喜歡的新聞網站可能有幾個,每次都要分別開啟這些新聞網站進行瀏覽,比較麻煩。此時可以利用網路爬蟲,將這多個新聞網站中的新聞資訊爬取下來,集中進行閱讀。
有時,我們在瀏覽網頁上的資訊的時候,會發現有很多廣告。此時同樣可以利用爬蟲將對應網頁上的資訊爬取過來,這樣就可以自動的過濾掉這些廣告,方便對資訊的閱讀與使用。
有時,我們需要進行營銷,那麼如何找到目標客戶以及目標客戶的聯絡方式是一個關鍵問題。我們可以手動地在網際網路中尋找,但是這樣的效率會很低。此時,我們利用爬蟲,可以設定對應的規則,自動地從網際網路中採集目標使用者的聯絡方式等資料,供我們進行營銷使用。
有時,我們想對某個網站的使用者資訊進行分析,比如分析該網站的使用者活躍度、發言數、熱門文章等資訊,如果我們不是網站管理員,手工統計將是一個非常龐大的工程。此時,可以利用爬蟲輕鬆將這些資料採集到,以便進行進一步分析,而這一切爬取的操作,都是自動進行的,我們只需要編寫好對應的爬蟲,並設計好對應的規則即可。
除此之外,爬蟲還可以實現很多強大的功能。總之,爬蟲的出現,可以在一定程度上代替手工訪問網頁,從而,原先我們需要人工去訪問網際網路資訊的操作,現在都可以用爬蟲自動化實現,這樣可以更高效率地利用好網際網路中的有效資訊。
相關文章
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- python爬蟲系列(三)scrapy基本概念Python爬蟲
- Java爬蟲與Python爬蟲的區別?Java爬蟲Python
- python就是爬蟲嗎-python就是爬蟲嗎Python爬蟲
- python 爬蟲Python爬蟲
- python爬蟲Python爬蟲
- Python爬蟲之路-chrome在爬蟲中的使用Python爬蟲Chrome
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- Python爬蟲教程-01-爬蟲介紹Python爬蟲
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- Python爬蟲的用途Python爬蟲
- Python爬蟲入門教程 50-100 Python3爬蟲爬取VIP視訊-Python爬蟲6操作Python爬蟲
- 不踩坑的Python爬蟲:Python爬蟲開發與專案實戰,從爬蟲入門 PythonPython爬蟲
- python網路爬蟲_Python爬蟲:30個小時搞定Python網路爬蟲視訊教程Python爬蟲
- python爬蟲2Python爬蟲
- Python爬蟲-xpathPython爬蟲
- Python爬蟲——XPathPython爬蟲
- Python爬蟲--2Python爬蟲
- Python asyncio 爬蟲Python爬蟲
- Python 爬蟲系列Python爬蟲
- 爬蟲:多程式爬蟲爬蟲
- 【爬蟲】python爬蟲從入門到放棄爬蟲Python
- 【python--爬蟲】彼岸圖網高清桌布爬蟲Python爬蟲
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- 什麼是爬蟲?Python爬蟲框架有哪些?爬蟲Python框架
- Python爬蟲與Java爬蟲有何區別?Python爬蟲Java
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- IPIDEA乾貨|Java爬蟲與Python爬蟲的區別IdeaJava爬蟲Python
- 什麼是Python爬蟲?python爬蟲入門難嗎?Python爬蟲
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲
- 什麼是Python爬蟲?Python爬蟲常用框架有哪些?Python爬蟲框架
- 通用爬蟲與聚焦爬蟲爬蟲
- 爬蟲--Scrapy簡易爬蟲爬蟲
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- Python爬蟲教程-34-分散式爬蟲介紹Python爬蟲分散式
- Python爬蟲教程-30-Scrapy 爬蟲框架介紹Python爬蟲框架
- Python爬蟲和java爬蟲哪個效率高Python爬蟲Java