今天开源了一个百度云网盘爬虫项目,地址为https://github.com/callmelanmao/yunshare。百度云分享爬虫项目GitHub上有好几个这样的开源项目,但都只提供了爬虫部分。本项目还在爬虫的基础上增加了保存数据和构建elasticsearch索引的模块,可以在实际生产环境中使用。但是web模块还是需要自己开发安装。node.js和pm2,node用于运行爬虫程序和索引程序,pm2用于管理node任务,安装mysql和mongodb,mysql用于保存爬虫数据,mongodb用于保存最终的百度云分享data,这些数据都是json格式的,用mongodb保存比较方便。gitclonehttps://github.com/callmelanmao/yunsharecnpm推荐使用cnpm命令安装npm依赖,最简单的安装方式$npminstall-gcnpm--registry=https://registry.npm.taobao.org更多安装cnpm的命令可以在npm.taobao.org上找到。初始的爬虫数据(主要是url列表)存放在mysql数据库中。云享使用sequelizejs做ORM映射。源文件在src/models/index.js中。mysql默认用户名和密码都是root,数据是yun。需要手动创建yun数据库createdatabaseyundefaultcharsetutf8密码根据自己的需要修改。完成mysql配置后,可以运行如下命令gulpbabelnodedist/init.js注意必须先运行gulpbabel将es6代码编译成es5,然后运行初始化脚本导入初始数据。数据文件在data/hot.json,是从http://yun.baidu.com/pcloud/f...页面保存的。启动项目yunshare使用pm2进行nodejs进程管理,运行pm2启动进程。json启动所有后台任务。查看任务是否正常运行,可以使用命令pm2list。应该有4个任务正常运行。启动elasticsearch索引elasticsearch索引程序也已经写好了。映射文件位于data/mapping.json中。运行index程序前请确保已安装elasticsearch5.0版本。命令pm2启动dist/elastic.js。默认的elasticsearch地址是http://localhost:9200。如果需要修改这个地址,可以在src/ElasticWorker.js中修改。修改任何js源代码后,记得运行gulpbabel并重启pm2任务,否则修改不会生效。完成elasticsearch配置后,还可以在process.json中添加一个elastic任务,这样就不需要单独启动索引程序了。DEMO网盘搜索下篇文章继续介绍整个项目的总体设计思路和开发过程中遇到的问题。
