RuiJi.Net是一個開源的分佈式的網絡爬蟲框架,他有三種運行模式,分別爲本地模式,僞分佈模式,全分佈模式。由於此款框架是基於.net core開發的,能夠支持跨平臺Linux系統運行。由於本人接觸Linux也很少,今天就寫一篇成功在Linux部署Ruiji.Net單機版的爬坑文章。我使用的Linux系統爲CentOs7。css
官網地址:http://doc.ruijihg.com/html
源碼地址:https://github.com/zhupingqi/RuiJi.Netlinux
https://gitee.com/zhupingqi/RuiJi.Netgit
下載地址:https://codeload.github.com/zhupingqi/RuiJi.Net/zip/v1.0-rc1github
首先保證本機有.net core2.1的SDK 官方下載地址 https://download.microsoft.com/download/4/0/9/40920432-3302-47a8-b13c-bbc4848ad114/dotnet-sdk-2.1.302-win-gs-x64.exechrome
使用VS2017打開RuiJi.Net.sln nuget自動還原依賴包 生成RuiJi.Net.Cmd,所有從新生成成功。shell
右鍵單機RuiJi.Net.Cmd發佈,直接發佈 json
發佈成功後能夠看到目錄結果以下 瀏覽器
還能夠直接下載release發佈版,直接省略編譯發佈步驟。 下載地址:https://pan.baidu.com/s/1xZFIGT1FF_toXzs42qPLUw#list/path=%2FRuiJi.Net%2FRelease 密碼ef8d服務器
由於此次只是嘗試部署單機版,因此將ruiji.json配置文件修改爲只運行單機模式。
經過本身喜歡的各類方式放入Linux系統中,我使用的Xmanager Enterprise 5軟件支持SFTP協議。 我上傳到Linux的/usr/ruiji.net文件夾下,上傳完畢看到以下效果。
微軟官方文檔介紹的方法直接安裝成功
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm sudo yum update sudo yum install dotnet-sdk-2.1
跳轉到RuiJi.Net路徑下
cd /usr/ruiji.net
執行
dotnet RuiJi.Net.Cmd.dll
本覺得會啓動成功,結果報錯顯示本機無IP4地址。 後來檢索結果,可能跟我虛擬機配置有關。 修改/etc/hosts,添加本機地址指定hostname。 再次執行啓動RuiJi.Net,成功搞定。
回到Windows系統 訪問一下成功啓動的地址看看效果 404沒法訪問,忘記開Linux防火牆端口了。
查詢防火牆
firewall-cmd --zone=public --query-port=36000/tcp
結果返回no 永久開啓文檔80端口和RuiJi.Net36000端口,從新加載再次查詢返回yes
firewall-cmd --zone=public --add-port=36000/tcp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
打開瀏覽器從新訪問192.168.15.129:36000,成功進入後臺管理系統,爲了不亂碼或顯示錯誤,最好使用谷歌內核瀏覽器瀏覽
添加一個動態頁面測試抓取的示例,發現若是把RunJs勾選上就會報一下錯誤
查閱中文文檔 http://doc.ruijihg.com/cn/index.html 在目錄安裝》其餘中發現有chromium使用的描述
按照文檔說明下載chromium並解壓到RuiJi.Net目錄的chromium文件夾中
安裝chrome-libs庫
yum install chromium-libs.x86_64
並給與chromium文件夾最高權限
chmod -R 777 chromium
再次測試,成功運行酒仙網界面JS抓取動態界面成功。
我還使用POST請求測試了其餘一些網站的信息。你們若是感興趣能夠本身去測試玩,去官方文檔能夠查詢到RuiJi表達式相關寫法,我的有必定的爬蟲基礎仍是很簡單的,無非就是css selector、jsonPath、regex。
開啓開源中國的博客抓取,點擊GrabResult選項卡查看抓取結果,大成功
自此,Linux部署RuiJi.Net 教程到此結束。 在運行RuiJi.Net時發現很是不方便,不能夠關閉遠程連接linux服務器的shell,一旦關閉那麼RuiJi.Net也會中止運行。 我找到解決辦法是使用supervisord守護進程來調用RuiJi.Net,之後有時間我會寫一篇supervisord守護進程調用RuiJi.Net的教程。
另外咱們本次是搭建單機版的RuiJi.Net,經過修改ruiji.json能夠僞分佈和全分佈搭建RuiJi.Net。具體辦法能夠參考中文文檔:http://doc.ruijihg.com/cn/index.html