001:网络爬虫基础理论整合
本篇文章整合了網絡爬蟲的基礎知識,文章內容簡明易懂。適合用來復習爬蟲知識或者初識爬蟲的人。
下面步入正題:
網絡爬蟲又被稱為網絡機器人,可以代替人們自動的在互聯網中進行數據信息的采集與整理。在大數據時代,數據復雜度及采集數據效率是非常重要的。所以可以使用網絡爬蟲對數據信息進行自動采集并整合。
要學習網絡爬蟲,首先要認識網絡爬蟲,在本篇中,我來介紹一下幾種典型的網絡爬蟲,并了解其各種常見功能。
初始網絡爬蟲:
網絡爬蟲可以自動化的瀏覽網絡中的信息,并按照我們制定的規則進行,這些規則我們稱之為網絡爬蟲算法。Python語言可以很方便的寫出爬蟲程序,進行互聯網的信息自動化檢索。
每一個搜索引擎都離不開爬蟲,百度的搜索引擎爬蟲叫做百度蜘蛛,360的爬蟲叫做360pider,搜狗的爬蟲叫做Sogouspider,必應的爬蟲叫Bingbot。
網絡爬蟲的組成:
網絡爬蟲主要由控制節點、爬蟲節點、資源庫構成。
控制節點,也叫作爬蟲的中央控制器,主要負責根據URL地質分配線程,并調用爬蟲節點按照相關的算法,對網頁進行具體的爬行。并將對應的結果儲存到對應的資源庫中。
網絡爬蟲的類型:
通用網絡爬蟲:也叫全網爬蟲。顧名思義,爬取的資源在全網中。通用爬蟲主要由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數據庫、鏈接過濾模塊等構成。
聚焦網絡爬蟲,主要應用在對特定信息的爬取中。將爬取的目標網頁定位在與主題相關的頁面中。聚焦網絡爬蟲主要由:URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、數據庫、鏈路過濾模塊等構成、
增量式網絡爬蟲:在網頁更新的時候只更新其改變的地方,而未改變的地方則不更新。
只爬取內容發生變化的網頁或者新產生的網頁。
深層網絡爬蟲:可以爬取互聯網中的深層頁面。
在互聯網中,網頁按照存在方式進行分類,可以分為表層頁面和深層頁面。
所謂的 表層頁面 ,指的是不需要提交表單,使用靜態的鏈接就能夠達到的靜態頁面。而 深層頁面 則隱藏在表單后面,需要提交一定的關鍵詞之后才能獲取得到的頁面。
深層網絡爬蟲主要由URL頁面,LVS列表(;LVS指的是標簽數值集合,即是填充表單的數據源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應分析器等部分構成。
深層網絡爬蟲表單的填寫有兩種類型:
第一種是基于領域知識的表單填寫。
第二種是基于網頁結構分析的表單填寫。
網絡爬蟲技能總覽圖:
搜索引擎核心:
爬蟲與搜索引擎的關系是密不可分的
首先搜索引擎會利用爬蟲模塊去爬取互聯網。
然后將爬取到的網頁儲存在原始數據庫中。
接著對原始數據庫中的數據進行索引、
通過用戶交互借口輸入對應的信息。
(用戶交互借口,相當于搜索引擎的輸入框)
用戶輸入對應信息的同事,也會將用戶的行為儲存到用戶日志數據庫,日志分析器會根據大量的用戶數據去調整原始數據和索引數據庫,改變其排名結果或進行其他操作。
用戶爬蟲的一些事:
用戶爬蟲也是網絡爬蟲中的一種類型。
專門來爬蟲互聯網中用戶數據的一種爬蟲。
比如爬取淘寶的用戶信息,對知乎的用戶數據進行爬取等。
爬蟲的出現,可以在一定的程度上代替手工訪問網頁。
網絡爬蟲實現原理詳解:
不同類型的網絡爬蟲,其實現的原理也是不同的。
我在此以兩種典型的網絡爬蟲為例。(通用網絡爬蟲和聚焦網絡爬蟲),分析下網絡爬蟲的是實現原理。
通用網絡爬蟲:
聚焦網絡爬蟲:
聚焦網絡爬蟲,由于其需要有目的地進行爬取,必須要增加對目標的定義和過濾機制。
爬行策略:
爬行策略簡意來說是爬行的順序。
主要由深度優先爬行策略,廣度優先爬行策略、大站優先策略、反鏈策略、其他爬行策略等。
假如此時網頁ABCDEFG都在爬行隊列中,name按照不同的爬行策略,其爬取的順序是不同的。
若按深度優先爬行策略,爬行順序是A>D>E>B>C>F>G
按照廣度優先爬行策略去爬取,順序是A>B>C>D>E>F>G
我們還可以采用大戰爬行策略。也是說網頁數量越多的網站,爬取的優先級越高。
網頁更新策略:
作為爬蟲放,在網頁更新后,我們也需要針對更新的網頁部分進行調整,重新爬取。爬蟲也需要根據對應策略,讓不同的網頁具有不同的更新優先級,優先級搞的網頁更新,將獲得較快的爬行響應。
**聚類分析策略。**將共性較多的聚為一類。既依據“物以類聚”的思想去實現。
網頁分析算法:
搜索引擎的網頁分析算法主要分為3類:基于用戶行為的網頁分析算法,基于網絡拓撲的網頁分析算法,基于網頁內容的網頁分析算法。
1:基于用戶行為的網頁分析算法
這種算法師根據用戶對這些網頁的訪問行為,對這些網頁進行評價。
2:基于網絡拓撲的網頁分析算法
基于網絡拓撲的網頁分析算法是依靠網頁的鏈接關系、結構關系、已知網頁或數據進行分析的一種算法。
3:基于網頁內容的網頁分析算法
在基于網頁內容的網頁分析算法中,會依據網頁的數據,文本等網頁內容特征,對網頁進行相應的評價。
身份識別:
身份識別是很有趣的一塊,在爬蟲對網頁爬取的過程中,爬蟲必須要訪問對應的網頁,正規的爬蟲一般都會告訴對應網站站長其爬蟲身份,網站的管理員則可以通過爬蟲告知的身份信息對爬蟲的身份進行識別。這個過程就是爬蟲的身份識別過程。
一般來說,爬蟲在對網頁進行爬取訪問的時候,會通過HTTP請求中的User Agent字段告知自己的身份信息。一般爬蟲訪問一個網站的時候,首先會根據該站點下的Rbots.txt文件來確定可爬取的網頁范圍,Robots協議是需要網絡爬蟲共同遵守的協議。對于一些禁止的URL地址,網絡爬蟲不應爬取訪問。同時,如果爬取某一個站點時陷入死循環,造成該站點的服務壓力過大,如果有正確的身份設置,name改站點的站長則可以想辦法聯系到改爬蟲方,然后停止對應的爬蟲程序。
當然,有些爬蟲會偽裝成其他爬蟲或瀏覽器去爬取網站,去獲得一些額外數據,或者有些爬蟲會無視Robots協議的限制而任意爬取。從技術的角度來說,這些行為實現起來并不難,但是這些行為是不提倡的!
因為只有共同遵守一個良好的網絡規則,才能夠達到爬蟲方和站點服務方的雙贏。
內容總結:
本篇內容介紹了什么是網絡爬蟲,網絡爬蟲技能總覽,及網路爬蟲實現原理和實現技術等概念。
如果對文章內容感興趣的話,可以查看后續文章或留言聯系我。
ps----本文一部分內容自python網絡爬蟲書籍中。我閱讀了一遍后,重新挑出了其重要部分進行整合,言簡意賅。
下一篇內容:Python爬蟲之Urllib全方位解析
總結
以上是生活随笔為你收集整理的001:网络爬虫基础理论整合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: B端和C端产品的理解
- 下一篇: 人工智能会拥有意识吗?