1. 程式人生 > >網路爬蟲對對方伺服器造成的壓力到底有多大(彙總整理)

網路爬蟲對對方伺服器造成的壓力到底有多大(彙總整理)

一些大型的網站都會有robot.txt,這算是與爬蟲者的一個協議。只要在robot.txt允許的範圍內爬蟲就不存在道德和法律風險,只不過實際上的 爬蟲者一般都不看這個。控制採集速度。過快的採集會對網站伺服器造成不小的壓力,如果是效能差的小站可能就會被這麼搞垮了。因此放慢採集速度相當於各退一 步,既給網站減輕壓力,也降低自己被封禁的風險。爬蟲目前在法律上尚屬灰色地段,但爬別的網站用於自己的商業化用途也可能存在著法律風險。非法抓取使用 “新浪微博”使用者資訊 “脈脈”被判賠200萬元,這是國內的一條因爬蟲被判敗訴的新聞。所以各商業公司還是悠著點,特別是爬較為隱私的資料。 百家網路部落格抓取情況 可以看到現在幾乎維持在200~300/天的這個範圍,不要以為11.28~12.13抓取頻次非常高,甚至有的時候還達到了900頻次,後來怎麼降下來了啊,是不是降權了啊,我可以告訴你,這段時間都是極不正常的,只有降下來之後的才是正常的現象,而且在高峰期之前也是200~300頻次的,即大部分都是200~300頻次。對此我得出結論:個人部落格站點蜘蛛的正常訪問頻次為200~300次/天,為了使得結果的科學以及具有說服性,我還問過一些資深站長,他們反映蜘蛛對他們站點的抓取也是200~300次/天。
抓取壓力就是百度蜘蛛baiduspider在單位時間內對網站伺服器訪問的頻率和總次數。 那麼Baiduspider對一個網站伺服器又是如何造成抓取壓力的? 為了達到對目標資源較好的檢索效果,Baiduspider需要對您的網站保持一定量的抓取。百度官方的解釋說百度蜘蛛儘量不給網站帶來不合理的負擔,並會根據伺服器承受能力、網站質量、網站更新等綜合因素來進行自動調整。 要是你覺得baiduspider的抓取明顯造成了伺服器壓力,你還可以提交申請進行抓取壓力反饋? 第一步,登入百度站長平臺:zhanzhang.baidu.com 第三步,選擇左側”網站分析”→“壓力反饋” 第四步,在已認證歸屬的站點列表中選擇需要查詢的站點
第五步,得到站點抓取壓力曲線圖及壓力調整入口頁面 通過百度站長工具檢視自己站點被百度spider訪問的情況,並可調節百度spider每天訪問網站的壓力值,百度也會根據伺服器壓力自動調整抓取頻率,不過如果不太瞭解百度spider爬取頻率具體什麼意義那麼我們還是別自定義爬取頻率比較好,工具包括以下兩點功能: 檢視最近一個月的天級抓取量趨勢圖 壓力情況反饋,可調節天級抓取壓力的大小,調整的資料作為參考,不保證生效 1)一要看爬蟲寫的怎麼樣,二要看網站應用寫的怎麼樣。若爬蟲爬的守規矩,網站寫的也符合規範,則幾乎沒有影響。若不是,那就啥奇葩的事都會發生。 比如,某公司的網站只要有爬蟲來爬(及其守規矩),伺服器CPU就會從20%的水平直升到80%+的水平,響應時間由100ms增長到500ms+之上。大家含淚笑著說,難怪沒人來DDOS,這個只要正常訪問量多點就能掛掉的網站,一點DDOS的成就感都沒啊。 2) 網路中的爬蟲有很多,有大的搜尋引擎公司的爬蟲,比如google的Googlebot,百度的baiduspider,搜狗的sogou spider,有道的YodaoBot,騰訊的Sosospider,msn的是Msnbot。還有一些個人開發的用來嘗試的小的爬蟲。因此即使同一站點,對於網路中的不同爬蟲的壓力允許程度不同的。 3) 站點對於爬蟲的壓力允許程度不是公開的。 由於網路上的爬蟲,站點不可能一一告訴各個爬蟲其允許的壓力程度。同時站點也大致都沒有告訴爬蟲其壓力程度。站點都是在自己的伺服器管理上新增爬蟲訪問的限制工具。當爬蟲壓力過大時直接封禁爬蟲處理。 4)但是即便對於爬蟲來說進行壓力控制是一個困難的問題,但是對於一個正規的爬蟲來說,如果想爬蟲站點的資料,就不得不面對這個問題。 而站點的壓力控制可以分為以下幾點: 壓力的形式:通常來說,壓力主要分為兩個部分:抓取間隔和併發度。抓取間隔是兩次抓取時間的時間視窗。而併發度,則是同一時刻有幾個執行緒或者程序在訪問站點。比如抓取間隔為10s,併發度為1,就是每隔10s訪問站點的1個連結。這兩個引數決定了爬蟲對站點的抓取壓力。而且這兩個引數的不同造成的壓力是不相同的。比如說抓取間隔為10,併發度為10,是每隔10s訪問站點的10個連結, 其在100s內訪問的連結為100/10*10= 100個連結。而抓取間隔為100,併發為100,其在100s內訪問的連結為100/100*100= 100個連結。雖然兩個在100s。看起來訪問的站點連結數量是相同的,但是對站點的壓力來說是不同的。因為間隔為100,併發為100的這種壓力,雖然間隔相對較長,但是在一個瞬時100的壓力對站點來說可能會較大的。 對站點來說,一段時間訪問總量過大會造成壓力過大,而在同一時刻併發數較多,也是會造成壓力過大的問題的。 壓力的粒度:爬蟲面對的是一個一個的站點,而實際上,爬蟲抓取是經過dns解析成站點的ip,而站點和ip之間的關係是一種多對多的關係。即一個站點可能對外有多個ip,而一個ip上也可能有多個站點(通常是一些託管小站,託管在一個站點上)。 壓力控制以站點為單位的話,邏輯上要簡單。但是對於一個ip上多個站點可能會造成壓力大的問題。而以ip為單位,則需要考慮一個ip上多個站點的輪轉問題。同時一個站點多個ip時,還需要考慮多個ip上的壓力分攤問題。 也可以採取<站點,ip>的二元組的粒度來控制壓力。機制上相對複雜一些,但是可以更好的控制壓力。 壓力的計算:壓力計算是壓力控制的核心。其中有複雜的策略。後面單獨介紹該問題。 壓力的執行:理論的壓力計算的再好,也需要按照計算的壓力執行,才能達到預期的效果。這就要考慮抓取快取的設定問題,快取是有效的,因此不能無限制的將資料發給快取。而快取的資料如果不足,則會導致壓力執行的中斷,導致這段時間配額的浪費。 5) 壓力計算的策略 壓力計算主要考慮的因素: 站點規模:一般來講,站點規模較大,站點的使用者訪問頻度較多,站點的壓力承受程度相對要大些。其可以作為一個參考因素。 站點質量:站點質量指站點的資料是否是特別需要的,即質量較高,並且可代替性較低。站點質量較高的站點,代表爬蟲對其的抓取需求高。需要的抓取壓力控制程度高。 站點成分:站點的成分一般指站點的索引頁的比例。如果索引頁較多,承擔著其他站點提供索引的功能,則其可以幫助我們發現連結。應該為其提供相對多一些的抓取。 站點待抓比:站點的待抓取比高,表明站點的抓取需求大,希望抓取的資料更多一些。但是,計算站點待抓比時需要考慮歷史因素,即由於歷史因素的造成的待抓比高,不能覬覦短期內可以彌補而將壓力調節的較大。 站點訪問時間: 一般來講,站點的訪問時間較大時,代表站點的伺服器壓力較大。此時應該降低抓取壓力,以造成對方伺服器的崩潰或者對方的封禁。 站點的約定: 站點主動提供抓取壓力說明時,應該控制抓取壓力不超過對方設定的壓力限制。 站點抓取結果: 如果站點的抓取成功比率降低時,一般表示站點的壓力可能較大。此時應該注意降低站點壓力,以避免無效的抓取和站點的封禁。而且這時的抓取可能會帶來我們死鏈判斷的誤判。如果站點已經明確封禁或者發現站點封禁的話,則應該降低至很低的抓取壓力,使用少量的幾個url來測試站點是否解除封禁。 6)抓取壓力需考慮的其他問題 上面是我們進行壓力計算的時候需要考慮的問題,但是實際的問題是複雜的。比如站點規模較大隻是代表了站點能承受的壓力較大,但是站點如果對於爬蟲不夠友好的,則可能允許爬蟲的壓力較小。在設定了抓取壓力時,我們也需要對我們的抓取情況進行監控統計,來觀察按照我們計算的壓力執行時,是否合理。另外,在具體環節中的情況多種多樣。比如有些站點對於不同時段對於爬蟲的壓力允許程度是不同的。比如站點在早上八點到十點和下午兩點到五點這種工作時間會有較多的使用者訪問,希望爬蟲能避開這樣的使用者訪問高峰來訪問,對於時效性允許的網站我們應該考慮該問題。同時還有新聞這種時效性站點,可能在編輯的上班時間釋出的新聞較多,這時候需要相對較大的抓取壓力。而在晚上的時段則可能產生的新聞較多,我們對於新聞HUB也的抓取頻度可以適當降低。

相關推薦

網路爬蟲對方伺服器造成壓力到底(彙總整理)

一些大型的網站都會有robot.txt,這算是與爬蟲者的一個協議。只要在robot.txt允許的範圍內爬蟲就不存在道德和法律風險,只不過實際上的 爬蟲者一般都不看這個。控制採集速度。過快的採集會對網站伺服器造成不小的壓力,如果是效能差的小站可能就會被這麼搞垮了。因此放慢採

Linux下網路socket程式設計——實現伺服器(select)與個客戶端通訊

Linux下網路socket程式設計——實現伺服器(select)與多個客戶端通訊 置頂 2017年06月23日 14:44:37 閱讀數:3225 標籤: socket程式設計伺服器與多個客戶端通epoll多路複用C語言網路程式設計 更多

網路爬蟲_網頁登入(蘇寧 驗證碼)—基於HtmlUnit

輸入驗證碼: public static String getCode(){ System.out.println("請輸入驗證碼:"); Scanner sc = new Scanner(System.in); String code = s

網路爬蟲之Scrapy實戰二:爬取個網頁

前面介紹的scrapy爬蟲只能爬取單個網頁。如果我們想爬取多個網頁。比如網上的小說該如何如何操作呢。比如下面的這樣的結構。是小說的第一篇。可以點選返回目錄還是下一頁 對應的網頁程式碼: 我們再看進入後面章節的網頁,可以看到增加了上一頁 對應的網頁程式碼 通過

王者榮耀為例探討之搜索指數IT行業的運營作用到底

我們 src 今天 ext 才會 png 目標 百度 align 王者榮耀為例探討之搜索指數對IT行業的運營作用到底有多大? 這兩年,一個很有名的遊戲大家應該都聽說過了,那就是騰訊的王者榮耀,這個遊戲聽說非常火爆,但是我沒有玩過,身邊有很多人都玩過,據說非常強大,那麽今天我

固態硬盤吃雞影響?你一定想不到

固態硬盤 產品 term 但是 fff 使用 很多 分析 加載 據統計,今年新上線的筆記本電腦有超過百分之五十都已經升級了固態硬盤作為標配,而在一線品牌筆記本中這一比例則超過了百分之七十,這也說明固態硬盤在應用體驗上已經深得人心。但是如果從用戶電腦占有率的角度來看,筆記本電

邊緣計算嵌入式系統實現物聯網應用的影響,到底

引 言 雲端計算幾年前非常流行,可是當全部應用落地,海量資料湧入雲之後。對應的問題也隨之而來,處理速度慢、時延長,所以邊緣計算成為研究熱點。事實上邊緣計算起源於物聯網應用,它的作用體如今物聯網應用中雲計算的優化設計,其初衷是為了將一些無需上傳到雲的計算留在遠端

Coinness分析:SEC拒絕ETF,BTC價格影響

即便大家都知道,橫盤了這麼久,變盤是早晚的事,各項技術指標也表明了有上漲修正的需求。但短時內的突然拉昇,還是讓人感覺幸福太突然,反彈站不穩。果然,沒站穩。 收盤仍然收在6400多美元,感覺昨天早上的努力都白費了。不過昨天的資金流還是不小的,BTC、ETH、XRP、EOS等主流幣的資金流出很大,應

邊緣計算嵌入式系統實現物聯網應用的影響,究竟

雲端計算幾年前非常流行,但是當所有應用落地,海量資料湧入雲之後,相應的問題也隨之而來,處理速度慢、時延長,所以邊緣計算成為研究熱點。其實邊緣計算起源於物聯網應用,它的作用體現在物聯網應用中雲計算的優化設計,其初衷是為了將一些無需上傳到雲的計算留在遠端處理。那麼在嵌入式系統應用中,邊緣計算會起

買的起蘋果XS依然是隱形貧困人口 國產手機崛起蘋果威脅

MobData Q3中國智慧手機市場報告解讀,手機市場拐點出現了嗎? 失去了喬布斯的蘋果曾經被很多人擔心沒了喬幫主之後還能否引領全球消費市場。如今全球手機市場的寒冬正在悄然逼近,在華為、小米、OPPO一路高歌猛進的犀利營銷打法中,蘋果的優勢越來越弱,不僅iPhone的全球銷量被華為超越,股價更

反擊爬蟲,前端工程師的腦洞可以

1. 前言 對於一張網頁,我們往往希望它是結構良好,內容清晰的,這樣搜尋引擎才能準確地認知它。 而反過來,又有一些情景,我們不希望內容能被輕易獲取,比方說電商網站的交易額,教育網站的題目等。因為這些內容,往往是一個產品的生命線,必須做到有效地保護。這就是爬蟲與反

with as 語句效能的提示

    今天學習了資料庫with as 子查詢的用法,在網上查詢資料說用這個用法對效能有一定的提升。     所以我做了下面的一個示例:   (1)    select * from zwkmzd2013 where zwkmzd_kmbh in (select zwpzf

直播協議人氣,整Cip服務器的影響?

飛翔 服務器 都是 一道 水流 bgp 什麽 批評 對他 慶歷四年的春天,滕子京被降職到巴陵郡做太守。到了第二年,政事順利,百姓和樂,各種荒廢的事業都興辦起來了。於是重新修建嶽陽樓,擴大它原有的規模,把唐代名家和當代人的詩賦刻在它上面。囑托我寫一篇文章來記述這件事情。 整C

C#實現.Net郵件進行DKIM簽名和驗證,支援附件,傳送郵件簽名後直接投遞到對方伺服器(無需己方郵件伺服器

專案地址 github.com/xiangyuecn/… 主要支援 對郵件進行DKIM簽名,支援帶附件 對整個郵件內容(.eml檔案)的DKIM簽名進行驗證 對MailMessage、SmtpClient進行了一次封裝,傳送郵件簡單易用,進行DKIM簽名後直接投遞到對方伺服器(無需己方郵件

linux下使用ab工具伺服器進行壓力測試

ab 安裝 yum -y install httpd-tools (centos) 安裝完成後使用ab -v 檢視ab版本確認是否安裝成功 選項 選項 含義 -A auth-username:password 對伺服器提供BASIC認證信任。 使

利用Python網路爬蟲實現網易雲音樂歌詞爬取

今天小編給大家分享網易雲音樂歌詞爬取方法。 本文的總體思路如下: 找到正確的URL,獲取原始碼; 利用bs4解析原始碼,獲取歌曲名和歌曲ID; 呼叫網易雲歌曲API,獲取歌詞; 將歌詞寫入檔案,並存入本地。 本文的目的是獲取網易雲音樂的歌詞,並將歌詞存入到本地檔案。整

使用Jmeter伺服器壓力測試

大家好,我是IT修真院北京分院第32期學員,一枚正直善良的程式設計師,今天給大家分享一下如何用Jmeter對自己的伺服器進行有效壓測,讓伺服器效果最優化:一、JmeterJmeter是一個全部程式碼由java組成的測試軟體,主要用來測試伺服器的併發數、響應時間、吞吐量,介面如

網路爬蟲系列之二:下載頁面進行連結解析

        在我的上一篇部落格中,通過URL就已經成功下載了第一個頁面。然後我第二步的工作就是要通過這個已經下載好的頁面得到更多的URL。         在這篇部落格中主要完成了對頁面中的連結進行解析,並將它們拼成可以訪問的樣子。更多細緻的工作需要在後面進行完善。  

網路爬蟲-問答練習

弄了一陣網路爬蟲,使用requests,re,BeautifulSoup,這些包。暫放一段時間,怕忘了,就記下來吧。 按照mu zhi醫生的網站佈局,只要有一個醫生的ID就可以把屬於這位醫生的問答對全部爬下來。所以,思路是先把所有醫生的ID拿下來儲存到一