新聞資訊
租用幫助
爬蟲對(duì)服務(wù)器 CPU,內(nèi)存和網(wǎng)速的影響
2023-09-04 11:59:50
摘要:755800專業(yè)提供python爬蟲ip代理服務(wù)器,千萬ip庫(kù),隨便切換;十七年的IDC行業(yè)服務(wù)經(jīng)驗(yàn);擁有全球超過120個(gè)國(guó)家地區(qū)的數(shù)據(jù)中心!

這里介紹爬蟲對(duì)服務(wù)器的影響,主要是給小白同學(xué)普及一下爬蟲的基礎(chǔ)知識(shí)。


在我們寫爬蟲的時(shí)候,首先會(huì)想到開多線程,如果使用的語言是Python,很不幸,因?yàn)镻ython存在  GIL,在任何時(shí)候,CPU內(nèi)只有一條線程在運(yùn)行,但是Python的多線程也能提高爬蟲的速度,并且我們用python的多線程去寫爬蟲的時(shí)候,速度并不慢,這是為何呢?因?yàn)榕老x是偏向于io的,網(wǎng)絡(luò)IO和磁盤io是爬蟲的最大瓶頸,現(xiàn)在CPU的處理速度很快,相對(duì)于請(qǐng)求來說,CPU的速度更快。網(wǎng)絡(luò)請(qǐng)求需要等待對(duì)方服務(wù)器的響應(yīng),這個(gè)過程比較慢。而下載到數(shù)據(jù)后往自己數(shù)據(jù)庫(kù)插入數(shù)據(jù)需要等待自己的磁盤響應(yīng)。那么有沒有一個(gè)更好的方法實(shí)現(xiàn)爬蟲的并發(fā)下載呢?


答案是 : 有,我們可以使用第三方的框架,比如使用異步框架 gevent,tornado等,或者是Python的多進(jìn)程+ 異步方法,可以大大的提高我們的下載速度。


直接粘貼兩張圖片,第一種是消耗CPU和內(nèi)存和帶寬,第二張圖片是多進(jìn)程使用。


在爬取某個(gè)網(wǎng)站的時(shí)候,同時(shí)開啟了64個(gè)進(jìn)程,并且是異步的方法,下載速度穩(wěn)定在700k左右,因?yàn)楣具\(yùn)維給網(wǎng)絡(luò)限速了,不可能提高網(wǎng)速了,然后是內(nèi)存消耗是87%,內(nèi)存是12G,CPU消耗是百分之百,CPU消耗為何這么高呢?主要是數(shù)據(jù)解析需要消耗CPU和進(jìn)程切換也需要消耗CPU。一個(gè)網(wǎng)頁的大小應(yīng)該在10k到20k之間,粗略統(tǒng)計(jì)一下,一分鐘能下載1750個(gè)網(wǎng)頁,包括數(shù)據(jù)的下載,解析和入庫(kù)整個(gè)過程。這個(gè)下載速度是1750*60分鐘 等于105000,也就是說一個(gè)小時(shí)是能下載十萬個(gè)網(wǎng)頁。


這個(gè)速度怎么樣?我覺得這個(gè)下載速度是非常的慢,為何,因?yàn)檫@個(gè)網(wǎng)址他封ip了,需要通過代理去訪問他們的服務(wù)器,這也是非常耗時(shí)的一個(gè)過程,只能通過ip池去解決,ip池里面維護(hù)了1000左右有效ip,并且有專門的服務(wù)去做驗(yàn)證,可以隨時(shí)抽取一個(gè)ip去抓取目標(biāo)網(wǎng)站。理想的狀態(tài)是一分鐘抓取3000條數(shù)據(jù),一天24小時(shí)抓取500萬左右個(gè)網(wǎng)頁數(shù)據(jù)。


小伙伴是不是很驚訝?網(wǎng)絡(luò)百分之九十的流量都是爬蟲給貢獻(xiàn)的,爬蟲給目標(biāo)網(wǎng)站造成了不小的壓力,為了避免給目標(biāo)網(wǎng)站造成破壞,不建議開啟過多的并發(fā)。

755800專業(yè)提供python爬蟲ip代理服務(wù)器,千萬ip庫(kù),隨便切換;十七年的IDC行業(yè)服務(wù)經(jīng)驗(yàn);擁有全球超過120個(gè)國(guó)家地區(qū)的數(shù)據(jù)中心!詳詢755800客服 。


海外服務(wù)器免費(fèi)測(cè)試http://hbjsdrq.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)