百度雲分享爬蟲項目
github上有好幾個這樣的開源項目,但是都只提供了爬蟲部分,這個項目在爬蟲的基礎上還增加了保存數據,建立elasticsearch索引的模組,可以用在實際生產環境中,不過web模組還是需要自己開發
安裝
安裝node.js和pm2,node用來運行爬蟲程序和索引程序,pm2用來管理node任務
安裝mysql和mongodb,mysql用來保存爬蟲數據,mongodb用來保存最終的百度雲分享數據,這些數據是json格式的,用mongodb保存更方便。
gitclonehttps://github.com/callmelanmao/yunshare
cnpmi
建議使用cnpm指令安裝npm依賴,最簡單的安裝方式
$npminstall-gcnpm--registry=https://registry.npm.taobao.org
更多安裝cnpm的指令可以去npm.taobao.org上面找。
初始化
爬蟲資料(主要是url列表)都是保存在mysql資料庫的,yunshare使用sequelizejs做orm映射,來源檔案在src/models/index.js,預設的mysql使用者名稱和密碼都是root,資料看是yun,你需要手動建立yun資料庫
createdatabaseyundefaultcharsetutf8
密碼依自己需求修改,完成mysql配置之後就可以執行下面的指令
gulpbabel
nodedist/script/init.js
注意必須先執行gulpbabel把es6程式碼編譯成es5,然後執行初始化腳本導入初始數據,資料檔在data/hot.json,裡面,是從頁面http://yun.baidu.com/pcloud/friend/gethotuserlist? type=1&from=feed&start=0&limit=24&bdstoken=ac95ef31d3979f6ee707ef75cee9f5c5&clienttype=0&web=1儲存下來的。
啟動專案
yunshare使用pm2進行nodejs進程管理,運行pm2startprocess.json啟動所有的後台任務,檢查任務是否正常運行可以用命令pm2list,正常運行的應該有4個任務。
啟動elasticsearch索引
elasticsearch索引程式也已經寫好了,mapping檔案在data/mapping.json,請確保你已經安裝elasticsearch5.0的版本之後才運行索引程序,命令pm2startdist/elastic.js。
預設的elasticsearch位址是http://localhost:9200,如果你需要修改這個位址,可以在src/ElasticWorker.js裡面修改,修改任何js原始碼之後記得執行gulpbabel,在重啟pm2任務,不然修改是不會生效的。
在完成elasticsearch配置之後,你也可以在process.json裡面新增一項elastic任務,這樣就不需要單獨啟動索引程式了。
相關文件
簡單高效的nodejs爬蟲模型
DEMO