在各個電商平臺發展日漸成熟的今天。不少時候,咱們須要一些平臺上的基礎數據。好比:商品分類,分類下的商品詳細,甚至業務訂單數據。電商平臺大多數提供了相應的業務接口。容許ISV接入,用來擴展自身平臺的不足,更好的爲使用者提供服務。可是平臺的ISV接入門檻如今愈來愈高,審覈也愈來愈嚴格。拿不到接口SDK的密鑰,就只能望洋興嘆。html
針對這種狀況,有時候就須要採起一些另類手段-蜘蛛爬蟲。 模擬正常的客戶端請求,對獲取響應的內容進行解析,從內容提取關鍵內容。python
蜘蛛爬蟲的核心就是:發送http請求,獲取響應。git
萬變不離其宗。使用python的作的爬蟲比較多,相應的工具包也比較豐富。好比大名鼎鼎的 scrapy。可是這種單純的發送請求 ,獲取響應的引擎,有時候很難在響應式交互頁面就顯得捉雞。大把大把的js ajax請求,讓響應的內容並非想要的結果。讓蜘蛛引擎搭配瀏覽器內核,看起來是個不錯的選擇。尤爲是對js H5支持較好的webkit內核,再好不過。github
pthon 爬蟲的典型:web
scrapy + selenium + PhantomJS + libcef
做爲C#的擁躉者,咱們用C# 來實現上面的引擎機制。ShoppingWebCrawler 就是在這種背景下誕生的。ajax
開發語言:C#redis
開發工具:Visual Studio 2015 +.Net Framework4.0shell
運行平臺:Windowswindows
支持集羣:是瀏覽器
可視化工具:支持;可視化工具目前有針對蜘蛛的web瀏覽器工具,用來進行登陸受權,進程共享cookie。ShoppingPeeker 項目用來實現對蜘蛛數據的可視化操做。
承載方式:Windows 服務。
支持高效TCP通訊
支持集羣部署
支持Windows 服務+Headless
支持會話可靠性 登陸狀態保持
支持模擬 Chrome 請求發送解析響應
內置libcef 支持V8 解析JS
This Project is a WebCrawler build by .net framework .
本項目是一個基於使用微軟.net framework 結合Google的webkit內核作的蜘蛛採集工具。 支持多進程的集羣模式。實現高性能的蜘蛛採集!
使用此工具,進行電商平臺的數據採集。 本項目已經實現能夠採集淘寶、天貓、京東、拼多多、一號店、國美、蘇寧等主流電商平臺的網頁數據。
一、使用基於 Xilium.CefGlue 的libcef綁定,實現C#操做webkit。進行可視化的登錄受權。不定時刷新,進行登錄狀態的模擬和守護。
二、使用Topshelf+libcef的Headless 模式(無頭模式),進行windows 服務承載。對蜘蛛進程進行掛載守護。
三、使用log4net進行日誌記錄
四、使用Quartz.Net 進行定時任務Schduler。
五、服務進程使用自定義高性能Socket(NTCPMessage)進行網絡通訊。對來自服務Client的請求進行請求應答。
六、集羣模式,使用簡易的多進程實現集羣。開啓不一樣的監聽端口,實現採集任務的負載均衡,進而大幅度提高硬件服務器的使用效率。
Xilium.CefGlue是對CEF項目的.net的包裝,它是用P/Invoke的方式來調用CEF類庫的,請參見:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home。 使用Xilium.CefGlue 能夠實現.net 操做Chrome瀏覽器內核。進而實現瀏覽器網頁加載,js V8的實現。
Topshelf是建立Windows服務的一種方法。Topshelf是一個開源的跨平臺的宿主服務框架,支持Windows和Mono,只須要幾行代碼就能夠構建一個很方便使用的服務宿主。
引用安裝 一、官網:http://topshelf-project.com/ 這裏面有詳細的文檔及下載
安裝:TopshelfDemo.exe install
啓動:TopshelfDemo.exe start
重啓:TopshelfDemo.exe restart
卸載:TopshelfDemo.exe uninstall
簡單的說就是一個沒有UI界面的瀏覽器。使用命令行進行代碼控制瀏覽器行爲,常見於自動化單元測試。
一、下載源碼到本地。好比:d:\src
二、使用visual studio2015 打開項目並編譯。
三、配置Redis 環境。本項目使用redis 進行進程間的cookie共享,從而實現登陸憑據cookie的跨進程共享。在UI進程和Heaadless進程間進行Cookie共享。
四、運行 ShoppingWebCrawler.Host 項目,便可運行。
編譯 ShoppingWebCrawler.Host.DeskTop ,獲得UI 工具,能夠對打開一個網址。好比登陸淘寶,就能夠在本地進程間共享淘寶登陸憑據。從而實現 特定的蜘蛛採集任務。好比:採集某個類目的商品。採集商品優惠券。
編譯項目ShoppingWebCrawler.Host.WindowService,而後去項目的輸出目錄,在cmd 、powershell 定位到此目錄。執行:
ShoppingWebCrawler.Host.WindowService.exe install 便可。若是想卸載,那麼執行指令:ShoppingWebCrawler.Host.WindowService.exe uninstall .
參考topshelf的命令。
在項目ShoppingWebCrawler.Host 的app.config文件中
<!--是否開啓集羣模式--> <add key="ClusteringMode" value="true"/> <!--集羣子節點數量--> <add key="ClusterNodeCount" value="3"/>
MyBlog:http://www.cnblogs.com/micro-chen/ QQ:1021776019