日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

爬虫那些事儿-- 简介

發(fā)布時(shí)間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫那些事儿-- 简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?? 從事爬蟲(chóng)相關(guān)的工作已經(jīng)兩年多了。簡(jiǎn)要做下總結(jié)。

爬蟲(chóng)(Crawler),有些也叫蜘蛛(Spider),用來(lái)從互聯(lián)網(wǎng)下載網(wǎng)頁(yè)。是搜索引擎的重要組成。爬蟲(chóng)是搜索引擎的數(shù)據(jù)來(lái)源,是數(shù)據(jù)的入口。爬蟲(chóng)的基本思想是認(rèn)為整個(gè)互聯(lián)網(wǎng)類(lèi)似于一個(gè)交錯(cuò)的蜘蛛網(wǎng)。在互聯(lián)網(wǎng)中每個(gè)網(wǎng)頁(yè)都可以通過(guò)url訪問(wèn)。任何一個(gè)網(wǎng)頁(yè)都會(huì)被互聯(lián)網(wǎng)中的其他一些網(wǎng)頁(yè)所指向(即其他頁(yè)面中包含該頁(yè)面的url鏈接)。而幾乎每個(gè)網(wǎng)頁(yè)都存在一些指向其他網(wǎng)頁(yè)的鏈接。我們可以通過(guò)初始的若干URL開(kāi)始,獲取這些URL,并從這些URL對(duì)應(yīng)的網(wǎng)頁(yè)中發(fā)現(xiàn)新的URL,然后獲取新的URL對(duì)應(yīng)的頁(yè)面,通過(guò)不斷的執(zhí)行該過(guò)程,可以遍歷整個(gè)互聯(lián)網(wǎng)(即發(fā)現(xiàn)互聯(lián)網(wǎng)上所有的URL并獲取所有的頁(yè)面)。雖然對(duì)于龐大的互聯(lián)網(wǎng)來(lái)說(shuō),訪問(wèn)互聯(lián)網(wǎng)上全部的url是不現(xiàn)實(shí)的。但是該理論指引了我們爬蟲(chóng)的工作。爬蟲(chóng)可以基于該理論工作,從而獲取互聯(lián)網(wǎng)上絕大多數(shù)我們希望獲取的url。

在實(shí)際的工作中,爬蟲(chóng)中需要考慮的主要問(wèn)題如下

  • 爬取哪個(gè)頁(yè)面的選擇策略:

互聯(lián)網(wǎng)可謂是世界上最大的“垃圾場(chǎng)”,互聯(lián)網(wǎng)上的網(wǎng)頁(yè)繁多,每日互聯(lián)網(wǎng)上都產(chǎn)生上百億的新增頁(yè)面。我們按照100億的網(wǎng)頁(yè),每個(gè)頁(yè)面20KB來(lái)計(jì)算,100億的網(wǎng)頁(yè)約為200TB的大小。抓取這些數(shù)據(jù)需要的網(wǎng)絡(luò)帶寬為200*1000GB/86400 = 2.3GB,即至少需要18Gbps的網(wǎng)絡(luò)帶寬。因此想要全部抓取是不可能的。就需要有選擇的抓取。而選擇那些頁(yè)面進(jìn)行抓取就是首先需要考慮的一個(gè)問(wèn)題。這里一般主要考慮的問(wèn)題就是如何選擇優(yōu)質(zhì)的頁(yè)面去爬蟲(chóng)以及如何盡量避免重復(fù)爬取。

  • 檢測(cè)頁(yè)面變化的重訪策略:

搜索引擎會(huì)對(duì)爬蟲(chóng)爬取的網(wǎng)頁(yè)建索引,然后用戶就可以使用搜索引擎檢索所需的內(nèi)容從而獲取到對(duì)應(yīng)網(wǎng)頁(yè)的URL。而由于互聯(lián)網(wǎng)是動(dòng)態(tài)的,互聯(lián)網(wǎng)中的網(wǎng)頁(yè)是變化的。所謂的頁(yè)面變化主要分為兩種,更新和刪除。更新是指頁(yè)面的內(nèi)容改變了,即url還在,而對(duì)應(yīng)的網(wǎng)頁(yè)的內(nèi)容改變了。刪除是指url對(duì)應(yīng)的網(wǎng)頁(yè)已經(jīng)無(wú)效了。即不存在了(即稱(chēng)之為死鏈)。因此,爬蟲(chóng)就需要感知網(wǎng)頁(yè)的變化。而感知網(wǎng)頁(yè)變化的途徑就是通過(guò)對(duì)網(wǎng)頁(yè)進(jìn)行重訪。通過(guò)上面的介紹我們知道由于不可能訪問(wèn)互聯(lián)網(wǎng)全部的網(wǎng)頁(yè),因此爬蟲(chóng)的爬取資源是有限而珍貴的。把所有已經(jīng)爬取的頁(yè)面都拿去不斷的重訪來(lái)判斷變化是一種明顯的浪費(fèi)。因此我們就需要設(shè)計(jì)我們的重訪策略。所謂的重訪策略包括選擇那些頁(yè)面去重訪以及間隔多久去重訪兩部分的問(wèn)題。

  • 避免站點(diǎn)壓力過(guò)大的禮貌策略

由于網(wǎng)頁(yè)站點(diǎn)的服務(wù)器主要目的是提供用戶訪問(wèn)的。而站點(diǎn)的服務(wù)器受限于機(jī)器的配置和網(wǎng)絡(luò)資源,能容忍的訪問(wèn)頻次是有限的。當(dāng)訪問(wèn)較頻繁時(shí),則會(huì)造成服務(wù)器壓力過(guò)大,從而無(wú)法響應(yīng)請(qǐng)求。輕則影響正常用戶的訪問(wèn),重則可能導(dǎo)致web服務(wù)器的癱瘓。因此,為了能獲取站點(diǎn)的數(shù)據(jù)又盡量造成對(duì)服務(wù)器的壓力。爬蟲(chóng)爬取站點(diǎn)數(shù)據(jù)時(shí)需要禮貌的訪問(wèn),即以站點(diǎn)可以接受的頻次來(lái)訪問(wèn)站點(diǎn)數(shù)據(jù)。同時(shí)在現(xiàn)實(shí)中,一些服務(wù)器為了避免爬蟲(chóng)的頻繁訪問(wèn)會(huì)設(shè)置一些限制,當(dāng)爬蟲(chóng)訪問(wèn)的頻次超過(guò)其設(shè)置時(shí),有些通過(guò)采取彈窗輸入驗(yàn)證碼來(lái)區(qū)分人為行為和爬蟲(chóng)(目前的大部分爬蟲(chóng)還不能做到像人那樣識(shí)別彈出窗口的驗(yàn)證碼并輸入)。有些則拒絕爬蟲(chóng)的響應(yīng)(針對(duì)爬蟲(chóng)的訪問(wèn)返回404,503等返回碼)。遇到這樣的情況爬蟲(chóng)都無(wú)法正常的獲取到所需的內(nèi)容。同時(shí)由于不同的站點(diǎn)站點(diǎn)規(guī)模不同、用戶訪問(wèn)量不同,使用的機(jī)器配置不同,其容忍的訪問(wèn)頻次和設(shè)定的訪問(wèn)頻次不盡相同,而站點(diǎn)不會(huì)主動(dòng)對(duì)爬蟲(chóng)提供自己能容忍的站點(diǎn)壓力,因此對(duì)爬蟲(chóng)來(lái)說(shuō),避免站點(diǎn)壓力過(guò)大的禮貌策略是一個(gè)較大的難題。

  • 分布式抓取協(xié)作的并行策略

由于互聯(lián)網(wǎng)網(wǎng)頁(yè)數(shù)據(jù)是海量的。即使只抓取其中的部分,需要抓取的網(wǎng)頁(yè)也是較多的。此時(shí)通過(guò)單臺(tái)機(jī)器完成網(wǎng)頁(yè)的抓取是不太可能的?;ヂ?lián)網(wǎng)網(wǎng)頁(yè)的平均大小為20KB左右。一個(gè)100Mbps的帶寬一天能抓取的網(wǎng)頁(yè)數(shù)約為

100*1000/20*86400 = 54000000。多機(jī)器的分布式抓取協(xié)作是一種必然的模式。因此需要處理分布式抓取的并行問(wèn)題。

refer:http://en.wikipedia.org/wiki/Web_crawler

轉(zhuǎn)載于:https://www.cnblogs.com/lovemdx/p/3189828.html

總結(jié)

以上是生活随笔為你收集整理的爬虫那些事儿-- 简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。