Day057|你以爲網絡爬蟲與網頁抓取是一回事

今天是Andy學Python的第57 天哦! 

大家好,我是Andy。

這幾天有朋友問,“聽說你最近學習Python網頁抓取,有沒有興趣搞個項目?”細問之,朋友目前有一個很麻煩又很無聊的任務,就是從網上查詢並複製1W+企業的監測數據,然後將數據逐一保存到excel。我試了查詢1家企業的1條記錄,根據目前Andy的技術水平,使用Python搞不定。拿最簡單的前三步來說,從excel中複製企業名稱,打開瀏覽器指定網頁裏的搜索框,粘貼企業名稱,我都實現不了。朋友聽了,一臉不解,說網上有很多示例項目,代碼都是現成的,你只需改下代碼、搞個爬蟲,自動抓取數據,然後粘貼到excel,這不是張飛喫豆芽——小菜一碟嘛!

我無語了,猛然發現,沒有學習網頁抓取之前,好像我也是這麼想的。實際上,很多人並沒有搞清“網絡爬蟲”與“網頁抓取”之間的區別,一直以爲二者是一回事。其實不然。

01.

網絡爬蟲

百度百科定義:

網絡爬蟲(又稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱爲網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。

搜狗百科定義:

網絡爬蟲(web crawler)也叫網頁蜘蛛,網絡機器人,是一種用來自動瀏覽萬維網的程序或者腳本。爬蟲可以驗證超鏈接和HTML代碼,用於網絡抓取(Web scraping)。網絡搜索引擎等站點通過爬蟲軟件更新自身的網站內容(Web content)或其對其他網站的索引。

維基百科定義:

網絡爬蟲(英語:web crawler),也叫網絡蜘蛛(spider),是一種用來自動瀏覽萬維網的網絡機器人。其目的一般爲編纂網絡索引。網絡搜索引擎等站點通過爬蟲軟件更新自身的網站內容或其對其他網站的索引。網絡爬蟲可以將自己所訪問的頁面保存下來,以便搜索引擎事後生成索引供用戶搜索。

綜合三個定義,網絡爬蟲目的是按要求獲取萬維網信息,編纂網絡索引,主要應用於搜索引擎。

那麼問題來了,我們又不是做搜索引擎,學習網絡爬蟲有P用?

02.

網頁抓取

百度百科與搜狗百科對網頁抓取均無定義,只有基本介紹(內容一模一樣,如下)

網頁抓取主要有三個方面:

1. 蒐集新出現的網頁;

2. 蒐集那些在上次蒐集後有改變的網頁;

3. 發現自從上次蒐集後已經不再存了的網頁,並從庫中刪除。

維基百科定義個人感覺相對靠譜:

網頁抓取是一種從網頁上獲取頁面內容的計算機軟件技術。通常透過軟件使用低級別的超文本傳輸協議模仿人類的正常訪問。

網頁抓取和網頁索引極其相似,其中網頁索引指的是大多數搜索引擎採用使用的機器人或網絡爬蟲等技術。與此相反,網頁抓取更側重於轉換網絡上非結構化數據(常見的是HTML格式)成爲能在一箇中央數據庫和電子表格中儲存和分析的結構化數據。網頁抓取也涉及到網絡自動化,它利用計算機軟件模擬了人的瀏覽。網頁抓取的用途包括在線的價格比較,聯繫人抓取,氣象數據監測,網頁變化檢測,科研,混搭和Web數據集成。

技術層面:網絡抓取用於自動化獲取萬維網上的信息

1. 人工複製與粘貼:最好的網頁抓取技術也比不上人類的手工複製與粘貼,尤其是在某些網站採取技術手段禁止自動化網頁抓取的情況下,人工的複製與粘貼就成了唯一的解決方案。

2. 文本搜索與正則表達式:文本搜索並且配合正則表達式可以有效的從頁面上提取需要的內容。在基於UNIX的系統上可以使用grep,在其他平臺或其他編程語言(例如Perl,Python)中也有相應的命令或語法。

3. 基於HTTP編程:無論是靜態網頁還是動態網頁均可以通過發送HTTP請求給服務器來獲得,所以可以通過直接進行socket編程來實現。

4. HTML語法分析器:很多網站都是使用數據庫來存儲他們的數據,用戶訪問的時候再通過程序自動按照指定的格式生成,由於生成的這些網頁都採用了相同的的格式或者模板等,所以可以通過對獲取到的HTML頁面使用語法分析器進行語法分析,然後就可以使用HTML標籤來提取需要的內容。使用HTML語法分析器同文本搜索與正則表達式相比較程序更加的健壯,也免於構造複雜的正則表達式。

從上面解釋可以看出:網頁抓取技術層面分四類,其中人工複製與粘貼也是網頁抓取的一種。

03.二者區別

通過分析網絡抓蟲與網頁抓取的定義,我們平常所說的“網絡爬蟲”其實並不是真正的“網絡爬蟲”,而是“網頁抓取”,或者更確切的講是“網頁數據抓取”,只不過是利用爬蟲自動化完成網頁數據抓取工作。真正的“網絡爬蟲”是爲了編制搜索引擎的索引數據庫。

51Day Day up!

向上向善,日進一步!

每天學習,努力成長!

定個小目標,開啓成長的旅程,遇見更好的自己。

這是我們和自己的約定,許諾自己不負韶華。

路雖遠,行則將至;事雖難,做則必成。

成長的最好時機,就是當下。

Copyright © 2021 Andy學Python

轉載事宜請留言 | 獲得授權後方可轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章