成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談網絡爬蟲技術

安全 應用安全
目前網絡上存在著海量的數據資料,將這些數據爬取保存下來,并進行進一步操作,即可挖掘出數據的潛在價值。如今的互聯網存在的缺陷是用戶很難獲得有用的數據資料,雖然傳統的搜索引擎可以為用戶返回大量信息,但是用戶需要在龐雜的數據中尋找對自己有用的信息。因此現如今越來越多的平臺開始搭建屬于自己的數據爬取系統,并在爬取的數據基礎上展開服務。本文將會對網絡爬蟲技術進行概述,并闡述其基本原理。

一、網絡爬蟲技術概述

網絡爬蟲又叫網絡蜘蛛、網絡機器人等,可以將其理解為一個在互聯網上自動提取網頁信息并進行解析抓取的程序。網絡爬蟲不僅能夠復制網頁信息和下載音視頻,還可以做到行為鏈執行與網站的模擬登錄。身處大數據時代,不論是人工智能還是數據分析,都需要有海量的數據在背后做支撐,如果單單是依靠人力去手工采集,不僅成本高昂而且效率低下,在這一需求下,自動化且高效可并發執行的網絡爬蟲便擔起了獲取數據的重任。

二、網絡爬蟲基本原理

理論上來說,任何編程語言都可以用來編寫網絡爬蟲,只有難易之分。因為網絡爬蟲本質上只是對目標服務器發起HTTP請求,并對HTTP響應做出處理,提取關鍵信息進行清洗入庫。這里的服務器可以理解為要爬取的網站站點,爬蟲程序發起一次HTTP請求,網站服務器對請求做出一次響應,就構成了一次網絡爬蟲行為,但是僅僅發起請求是不完整的,還需要將網站返回回來的信息進行數據解析和數據清洗,將最終需要的數據存儲到數據庫或是本地文件里才算是完成了一整套的爬蟲流程。

如圖1所示,完整的爬蟲流程應當是編寫的網絡爬蟲在發起請求之后,目標服務器返回指定的請求響應,通過對請求響應返回的響應體進行解析,找到需要的信息進行數據存儲。如果需要翻頁或者進行跳轉,則從當前頁面或者響應體中提取出鏈接再次發起請求。

圖片

圖 1 網絡爬蟲流程

通常來說,開發一個網絡爬蟲主要有兩個途徑,一個是根據請求包和解析包從頭開始爬蟲編寫,另一個是基于現行的爬蟲框架,進行框架化開發。

1.腳本編寫爬蟲

Python實現了許多第三方庫來幫開發者完成這個操作,比如github上開源的requests庫便是發起HTTP請求的利器,這就省去了實現請求程序的時間,bs4解析庫更是讓開發者只需要專注于網頁信息的定位,操作網站返回的主體信息就可以了。開發重心也就從協議處理轉化到了具體網頁的數據提取。不過如果爬蟲編寫者是要對有著反爬蟲措施的網站進行數據采集,則需要花費精力去應對反爬蟲手段,諸如JavaScript逆向、代碼混淆或者指紋風控之類的手段。

2.基于框架開發爬蟲

如今流行的網絡爬蟲框架Scrapy,其基于異步Twisted引擎,將爬蟲請求的每個階段都進行了拆分,并建立了鉤子能夠讓開發者在每一階段進行定制化開發,可以大大加快網絡爬蟲的開發速度,并且其異步特性可以很好地實現并發爬取。

Scrapy框架模塊化和程序化的編寫方式,符合團隊合作的風格,相較于腳本編寫爬蟲,更易于集體開發和維護。但缺點是需要進行第三方的拓展時不如直接進行腳本編寫方便,如今的爬蟲大多需要進行JS逆向、驗證碼識別之類的操作,外接其他編程語言進行開發,這需要對Scrapy有著深入了解才能做到程序穩定運行。

三、網絡爬蟲分類

實際開發中根據具體的代碼實現與爬蟲架構,網絡爬蟲可以被分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲與深層網絡爬蟲。

1.通用網絡爬蟲(General Purpose Web Crawler)

通用網絡爬蟲又叫全網爬蟲,顧名思義,它的目標數據是整個互聯網,爬取的數據極為豐富,因此常用于搜索引擎當中。它們往往從一些種子URL出發,輾轉爬取最終拓展到整個網絡。在爬蟲流程里講過,一個爬蟲程序的設計離不開發起請求,解析頁面和內容存儲三個方面。既然要存儲海量的互聯網數據,那這類爬蟲對于爬蟲的性能和數據的存儲空間就會具有高要求,而且因為URL數量過多,通用網絡爬蟲常常會忽略爬行頁面的順序,并且采取并發的模式來提高爬取速度。

正是因為它要爬取海量的數據,所以此類爬蟲的爬取策略常常需要進行嚴格的設計與實踐。就目前而言,深度優先爬取策略和廣度優先爬取策略是較為常見的。不過真正應用于實踐當中的通用網絡爬蟲策略往往會非常復雜,并且穿插各類算法在其中。

(1) 深度優先:按照頁面深度進行排序,一次訪問下一級URL,直到觸底無法深入。

(2) 廣度優先:按照頁面內容目錄層次進行劃分,爬取完同一層次的URL才會繼續進入下一層進行爬取。

2.聚焦網絡爬蟲(Focused Crawler)

聚焦網絡爬蟲更加適用于日常的爬蟲需求,并不需要爬蟲程序去獲取整個互聯網的資源,那是搜索引擎該做的事。它專注于某一主題,選擇性爬取網頁上與開發者已經定義的規則相匹配的數據資源,能夠滿足對于特定網站或者領域的信息爬取工作。

聚焦網絡爬蟲的爬取策略有4種:

(1) 基于內容評價:將用戶輸入的信息作為主題進行爬取,頁面包含用戶輸入信息則認為主題相關。

(2) 基于鏈接評價:根據頁面結構信息分析爬取的URL重要性,根據重要程度進行爬取優先級的排序。

(3) 基于增強學習:利用概率統計中的貝葉斯分類器,根據網頁內容和鏈接文本對URL進行分類,計算出URL的權重,以決定爬取順序。

(4) 基于語境圖:結合機器學習系統,計算當前頁面到相關的網頁的距離,距離越近的頁面的URL訪問越優先。

3.增量式網絡爬蟲(Incremental Web Crawler)

增量式網絡爬蟲主要目的是長久地維持一個數據庫,對于其中數據的穩健性和實時性具有高要求。簡單來說,它對已經爬取過的網頁頁面采取增量式更新,再次爬取的時候就會僅僅爬取新出現的或者發生改變的數據,對于沒有發生變化的頁面或數據則不會爬取。

此類爬蟲常用的策略有三:

(1) 統一更新:每隔一段時間將所有的頁面再次訪問一遍,以達到更新數據的目的。

(2) 個體更新:根據個體網站的數據變化頻率來指定重新訪問的時間。

(3) 分類更新:將網頁區分為數據變化迅速的和數據變化緩慢的,以不同頻率訪問這兩類網頁。

4.深層網絡爬蟲(Deep Web Crawler)

深層網絡主要指的是沒辦法直接訪問到的頁面,這類網頁信息通常需要滿足一定的要求才可以瀏覽,隱藏在一些表單之后,不能通過靜態鏈接直接獲取。例如日常生活中遇到的一些必須登錄注冊后才可以訪問的網站便屬于深層網絡的范疇。這類爬蟲的需求也極其旺盛,不過只需要搭配GET和POST請求便可以訪問,主要難點在于破解POST提交信息時候的網頁數據加密,即JavaScript加密參數。

四、網絡爬蟲與搜索引擎

首先,搜索引擎的制作離不開網絡爬蟲,如百度搜索引擎又叫作百度爬蟲(BaiduSpider),谷歌搜索引擎又被稱為谷歌機器人(Googlebot),而且通用網絡爬蟲有時候也可以用來指代搜索引擎,是否搜索引擎就是網絡爬蟲呢?答案是否定的。搜索引擎是一項綜合性的技術,網絡爬蟲是實現搜索引擎的比必不可少的一環,爬蟲只為搜索引擎提供數據,除此之外還有建立全文索引,進行倒排文件以及提供查詢服務等技術糅合在里邊。

除此之外,搜索引擎更關注的是大而全,為大多數用戶提供檢索服務,所以有些冷門的沒有被列入索引的網站就沒辦法被實時獲取到,而網絡爬蟲則可以通過個人定制,爬取一些搜索引擎關照不到的地方,典型的案例便是深層網絡爬蟲以及在robots.txt中明確禁止搜索引擎爬取的網站,而理論上開發者編寫的網絡爬蟲可以到達世界上的任何網站。

雖然開發者日常編寫的網絡爬蟲遠不及搜索引擎那般復雜與精密,但是卻能夠讓人了解到搜索引擎內部的工作原理。而且搜索引擎也可以看作是日常編寫的一個個定向聚焦的網絡爬蟲聚合而來的,當搜索引擎沒辦法完成定向的數據搜集工作的時候,編寫一個自己的網絡爬蟲就顯得極為重要了。

五、網絡爬蟲技術的危害

由于網絡爬蟲可以模擬正常用戶的訪問,所以可以完成下單購物、搶票秒殺等行為,而且其是從協議層面實現的,拋開了電腦端和移動端的一系列復雜行為,速度遠快于正常用戶,會擠占正常用戶的需求。此外,網絡爬蟲常被用來爬取公開的數據,但是爬取行為依然會占用正常的服務器資源。而且許多爬蟲是追求效率的,是不加節制地,多線程、分布式地去進行數據爬取,對網站造成類似DDOS的攻擊,使得正常用戶也無法訪問到數據。

要從互聯網上根絕網絡爬蟲也是不可能的,因為網絡爬蟲已經成為了互聯網生態的一部分,搜索引擎便是最大的網絡爬蟲。網站要防止的是來自個人或組織的不加節制的爬蟲行為,通過不斷提高爬蟲門檻,建立反爬蟲措施,可以很大程度增加網絡爬蟲的爬取成本,降低網絡爬蟲帶來的危害。

參考文獻

[1]Tianyi Ma,Ziyang Zhang. Medical Consultation System based on Python Web crawler[C]//.Proceedings of 2021 2nd International Conference on Electronics, Communications and Information Technology (CECIT 2021).,2021:772-776.DOI:10.26914/c.cnkihy.2021.065511.

[2]Addo Prince Clement,Dorgbefu Jnr. Maxwell,Kulbo Nora Bakabbey,Akpatsa Samuel Kofi,Ohemeng Asare Andy,Dagadu Joshua Caleb,Boansi Kufuor Oliver,Kofi Frimpong Adasa Nkrumah. Video Ads in Digital Marketing and Sales: A Big Data Analytics Using Scrapy Web Crawler Mining Technique[J]. Asian Journal of Research in Computer Science,2021.

[3]Ma Xiaoju,Yan Min. Design and Implementation of Craweper Based on Scrapy[J]. Journal of Physics: Conference Series,2021,2033(1).

[4]Deng Kaiying,Chen Senpeng,Deng Jingwei. On optimisation of web crawler system on Scrapy framework[J]. International Journal of Wireless and Mobile Computing,2020,18(4).

[5]Wang Wei,Yu Lihua. UCrawler: A learning-based web crawler using a URL knowledge base[J]. Journal of Computational Methods in Sciences and Engineering,2021,21(2).

責任編輯:武曉燕 來源: 中國保密協會科學技術分會
相關推薦

2022-09-20 07:02:20

網絡爬蟲反爬蟲

2011-11-08 11:21:00

2020-10-15 14:00:20

網絡攻擊溯源

2020-10-15 14:10:51

網絡攻擊溯源

2025-01-24 08:42:31

以太網無損網絡網絡

2014-11-26 10:23:34

數據中心SDN

2017-12-11 15:15:50

2009-10-20 17:40:37

智能網絡綜合布線

2010-01-18 13:26:38

網絡交換機配置

2023-01-17 07:35:00

2017-05-16 15:33:42

Python網絡爬蟲核心技術框架

2015-10-23 10:27:06

網絡爬蟲相似矩陣流程

2022-11-24 10:24:32

2009-11-13 13:30:44

路由器技術

2019-09-18 08:19:42

DDLMySQL數據庫

2021-11-26 07:31:43

Java反射程序

2019-10-18 08:52:41

程序員爬蟲Java

2015-09-22 11:23:57

網絡研發網絡技術研究SDN

2023-05-26 00:51:52

2022-09-14 23:06:45

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品1区2区3区4区 | 国产高清视频在线观看 | 狠狠入ady亚洲精品经典电影 | 日本精品一区二区三区在线观看视频 | 6996成人影院网在线播放 | 三级黄色大片网站 | 一区二区三区国产精品 | 日韩综合 | 黄色成人国产 | 国产一在线 | 2021天天干夜夜爽 | 久久久久久亚洲精品 | 性一交一乱一伦视频免费观看 | 国产在线视频一区 | 成人免费观看男女羞羞视频 | 欧美精品一二三 | 国产精品久久久久久婷婷天堂 | 欧美精品黄 | 夜夜爽99久久国产综合精品女不卡 | 国产一级片一区二区三区 | 性色av香蕉一区二区 | 久久久久久999 | 一区二区三区视频在线观看 | 国产精品久久久av | 久久久久久久久淑女av国产精品 | 国产精品一区二区三区免费观看 | 超碰高清| 91亚洲国产成人精品一区二三 | 亚洲综合天堂网 | 欧美极品在线观看 | 国产精品久久精品 | 午夜影院在线观看 | 久久久久黑人 | 日韩av高清| 波多野结衣一区二区三区在线观看 | 国产一区二区激情视频 | 午夜精品久久久久久久久久久久久 | 色本道 | 日韩a| 超碰美女在线 | 免费在线性爱视频 |