架構師_程序員

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

查看: 18443|回復: 54

[控制臺程序] .net/c# 網絡爬蟲優化之路

  [復制鏈接]
發表于 2018-4-19 14:21:02 | 顯示全部樓層
0x00

網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。

0x01

一般爬蟲簡單來說的話,就是根據自己的規則去抓取數據,把抓取的數據加以分析,然后,獲取到對自己有用的數據。

0x02

網絡爬蟲優化可以分兩個階段:

1:在抓取數據的時候進行優化;

2:對抓取結果的處理進行優化;

今天,我們只講在抓取過程中的優化!

0x03

抓取過程中的優化,我自己總結過幾點:

1:可以在物理地址上進行優化,例如:目標資源服務器是上海的騰訊云主機,我們盡可能的選擇同地域的服務器,也就是上海地域的服務器,不要去選擇北京、青島等等地域的服務器,也盡量選擇同idc機房的服務器,我們知道此資源網站是用的騰訊云的服務器,我們盡可能的把爬蟲放在騰訊云服務器上面,而不要放在阿里云服務器上面!

2:選擇穩定、快速的網絡,一般爬蟲對網絡質量要求較高,盡量不要使用家庭網絡,選擇公司網絡或則購買服務器進行抓取數據。

3:選擇比較高效的爬蟲語言,聽說python在爬蟲方面比較擅長,但是,我沒有用過,以后再做測試,今天,我主要是以.net語言來講解。

0x04

對于搶購之類的東西,對抓取速度要求較高,可謂是分秒必爭,早獲取到數據,就多增加搶到的幾率,下面是我用控制臺寫了一個demo,對本網站數據進行抓取的測試,如下圖:

QQ截圖20180419133334.jpg
(耗時越短,表示越快)

上面數據排名:1:原生優化后的代碼、2:原生代碼、3:第三方插件dll(包)

0x05

為什么第三方插件(包)耗時最長?第三方插件其實是對原生代碼的大量封裝,大量邏輯判斷,通用性比較強,可能會導致抓取速度很慢。

下面是原生代碼:



原生代碼就上面幾行,平均耗時還是184毫秒,越簡單的代碼越難優化,大家感覺上面的代碼如何再優化才能達到平均耗時99毫秒?速度相差一倍!

0x06

優化的秘密“gzip”,如果,目標資源服務器支持gzip壓縮的情況下,我們在訪問網站的時候,瀏覽器請求網站的時候,請求頭會帶有下面的參數:

響應頭參數:




QQ截圖20180419140631.jpg

關于“Accept-Encoding”的介紹:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

通俗點講:

客戶端說:我支持“gzip, deflate, sdch, br”壓縮算法,你返回數據的時候,隨便用那種都可以。

服務端說:我正好支持gzip壓縮算法,那我就用gzip算法,把數據壓縮傳給你

客戶端說:好的,那我把收到的數據用gzip算法解密

gzip算法,可以對傳輸數據進行壓縮,大大減少了傳輸的內容,所以,請求效率會提高,所以,優化后的代碼如下:


雖然是很小的細節,但是效率可謂提高了一倍!相當于,你兩天采集的數據,現在1天可以采集完,此文,獻給學習爬蟲的朋友們。

注意:gzip壓縮算法和編程語言無關!

最后,附上源碼:

游客,如果您要查看本帖隱藏內容請回復

評分

參與人數 1MB +1 貢獻 +1 收起 理由
愛學習的小小白 + 1 + 1 支持樓主發好帖,我也會發好帖!.

查看全部評分





上一篇:國際慣例新人報道來一發
下一篇:.net/c# 次世代驗證碼識別系統2.3教程
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2019-12-31 10:48:25 | 顯示全部樓層
小白傷不起。有沒類似大數據一鍵采集的軟件。?
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2019-6-10 14:11:09 | 顯示全部樓層
小白傷不起。有沒類似大數據一鍵采集的軟件。?
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2019-10-15 10:29:57 | 顯示全部樓層
GANJUETINGHAOWANDE  KANN
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-4-20 12:35:21 | 顯示全部樓層
謝謝分享哦
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-4-25 11:33:55 | 顯示全部樓層
收藏,或許有用。
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-5-17 18:02:21 | 顯示全部樓層
網絡爬蟲優化之路 收藏
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-5-18 16:10:57 | 顯示全部樓層
ooooooooooooooooooo
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-7-18 14:43:07 | 顯示全部樓層
看看有沒有用
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-7-20 10:09:50 | 顯示全部樓層
DADASDSADSAD
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-8-13 13:06:50 | 顯示全部樓層
查看下這個源碼
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-8-20 14:00:52 | 顯示全部樓層

謝謝分享
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
發表于 2018-8-30 11:42:26 | 顯示全部樓層
srkskrskrskrskrskr
碼農網,只發表在實踐過程中,遇到的技術難題,不誤導他人。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則

免責聲明:
碼農網所發布的一切軟件、編程資料或者文章僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦中徹底刪除上述內容。如果您喜歡該程序,請支持正版軟件,購買注冊,得到更好的正版服務。如有侵權請郵件與我們聯系處理。

Mail To:help@itsvse.com

QQ|Archiver|手機版|小黑屋|架構師 ( 魯ICP備14021824號-2 )|網站地圖

GMT+8, 2020-5-29 18:01

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
极速快3大小怎么竞猜