如何用ip代理打造爬蟲框架

第一,為什么要造輪子?
 
有興趣的同學可以去各大招聘網站看一看爬蟲工程師的要求。大部分都是JAVA,PYTHON甚至NODEJS,C++,或者在開源中國查詢C#的爬蟲。只有幾個很簡單的項目幾年沒更新了。從我看的一些文章來看,就純性能而言,PYTHON與JAVA相比并不處于弱勢。況且根據我多年的開發經驗,大部分爬蟲的性能瓶頸都是并發下載(網速)和IP池,所以我覺得用C#寫一個爬蟲框架是絕對可行的。為什么我的大?NET有強大的爬蟲框架嗎?老實說,我不知道??赡芘老x框架核心比較簡單,大牛不喜歡。也許吧。NET開發人員沒有其他語言的開發人員勤奮,也沒有。NET沒有其他語言高。隨著……的宣布。NET開源新聞,我覺得是時候開發一個跨平臺跨語言的爬蟲框架了。我不喜歡復雜的事情。我一直覺得復雜的事情容易出問題,可能跟我個人能力有限,控制不了有關。所以在設計DotnetSpider的時候,我參考了JAVA下一個輕量級爬蟲框架webmagic,但是我絕對有自己的理解和改進。
 
 
二、框架設計
 
其實我覺得爬蟲的設計已經相當成熟了,大部分都會拿出下面的圖來說事。由于我是參考webmagic,所以要貼出來給大家看看(圖片直接取自webmagic)。
 
調度器:負責URL的調度,可以實現如queue、priority scheduler、redisscheduler(可用于分布式)等等。
 
下載器:負責下載HTML,如HttpDownloader、瀏覽器下載器(web驅動)、Fiddler下載器、本地文件下載器等。
 
PageProcesser:負責HTML解析和符合規則的新URL解析。從上圖可以看出,傳入處理器的Page對象包含了下載的完整HTML或JSON數據。
 
管道:負責數據存儲,如MySql、MySqlFile、MSSQL、MongoDb等。
 
第三,與其他爬行動物的區別
 
用JSON來定義crawler,這樣就可以最終實現跨語言(只需要為不同的語言編寫一個JSON轉換的provider)
 
因為使用JSON進行解析,所以可以實現一個類中的屬性是其他類(只有MongoDB,在關系數據庫中不容易存儲)。
 
自動建表
 
有一個版本的。NET核心,所以可以跨平臺(很多任務已經在LINUX下運行)
 
由于IP代理的不穩定性,沒有仔細測試和使用代理模塊,而是實現了另一種IP切換方式(ADSL撥號)。
 
添加基礎數據驗證模塊。
 
第四,最基本的使用方法
 
最基本的使用方法是不需要參考Extension,只需要參考Common,Core,JLog,然后需要自己實現IPipeline和Processer。
 
使用我們的代理云有什么優勢?
 
1分布式代理IP數萬個代理IP節點分布在全國各省市,沒有重復的IP段。
 
支持多線程和高并發。
 
家庭寬帶線路所有資源來自家庭寬帶終端,IP綠色純凈,適用于所有項目。
 
多許可證使用代理IP時,需要用戶名密碼或IP白名單綁定,后臺可自由切換。
 
5長效+HTTPS所有代理IP都支持HTTPS協議,代理IP平均使用時間在沒有客戶端支持的情況下長達4小時。

 

主站蜘蛛池模板: 中文字幕网伦射乱中文| 人妻丝袜无码专区视频网站| 三级视频在线播放| 大学生日嘛批1| 一本大道香蕉大vr在线吗视频 | 91人成在线观看网站| 女人扒下裤让男人桶到爽| 中文字幕在线观看一区二区三区| 日韩欧美国产电影| 亚洲中文久久精品无码1| 欧美精品久久久久久久影视 | 外国一级黄色毛片| 一人上面一个吃我电影| 成人看的一级毛片| 久久91精品国产91久久户| 日本欧美大码aⅴ在线播放| 久久综合日韩亚洲精品色| 欧美一级欧美一级高清| 亚洲天堂一级片| 欧美破处视频在线| 亚洲第一综合色| 泳衣男漫画臀篇佳门サエコcc| 免费a级在线观看播放| 精品久久久久久中文字幕人妻最新| 啊灬啊灬啊灬快好深用力免费| 久久国产精品久久久久久 | 无码国内精品人妻少妇蜜桃视频| 久久精品无码一区二区三区免费| 欧美BBBWBBWBBWBBW| 亚洲卡一卡2卡三卡4麻豆| 欧美日韩国产一区二区三区欧| 亚洲第一页国产| 污网站免费观看污网站| 亚洲综合色区中文字幕| 狠狠色狠狠色综合日日不卡| 你懂的网址免费国产| 男人j桶进女人免费视频| 免费a级在线观看播放| 男人j进美女p动态图片| 人人影院免费大片| 狠狠久久精品中文字幕无码|