今天在畅游的主要工作内容是爬取百度贴吧的内容,今天上玩班就要三天碰不到公司的电脑,所以想搞一个定时任务,能在这三天里面每半个小时执行一次爬虫,但是自己不太熟悉windows下定时执行爬虫,所以想到了一个不成熟的想法,利用linux来解决问题,于是忙碌的一天开始了!
1、windows安装mongodb
windows安装mongodb,其实还是比较简单的,首先去官网上下载一个windows版本的mongodb安装包
地址为:https://www.mongodb.com/download-center?jmp=nav#community
选择一个合适的版本就好,这里我选择:
下载完后点击安装,一路下一步即可,这里我忘记了更换安装路径,无奈装到了c盘。
注意把mongodb的bin路径添加到系统路径:
接下来,需要新建一个用于存储数据文件的文件件,我建在了d盘 mongodb/data路径下,那么首先进入到mongodb的bin路径,在windows的控制台下使用如下命令进行启动:
mongod -dbpath "d:\mongodb\data"
成功启动!
2、编写爬虫
scrapy相信大家都比较熟,经过两三个小时的编写把,成功编写了一个百度贴吧的爬虫,并将抓取到的数据存入mongodb,最终的爬虫效果如下:
这里除了帖子的基本信息外,还保存了第一页的回复信息,stairs保存了每一楼的信息,在每一楼内,还可能存在楼内的回复,那么每一楼的结构如下图:
这里我记录下了每一楼内的对话信息,包括谁回复的谁以及回复的内容。
3、安装VMware和ubuntu
接下来需要在windows上安装vmware和ubuntu虚拟机,这里就不多说了
vmware下载地址:直接百度搜索,使用百度提供的链接下载,这里附上一个破解码
5A02H-AU243-TZJ49-GTC7K-3C61N
ubuntu下载地址:http://cdimage.ubuntu.com/daily-live/current/
4、实现windows和ubuntu的互联
这里选择NAT的网络连接方式:
随后,在windows上网络连接中设置VMware Network Adapter VMnet8的ip,如下图:
此时,在虚拟机中就可以ping通本地了,而这个ip,将作为mongodb的server地址使用:
5、将代码放入虚拟机中,并配置开发环境
把代码从本地放入虚拟机中,可以考虑使用u盘拷贝的方式,在虚拟机中,我们需要修改连接mongodb的代码,如下图所示,使用刚才我们设置好的ip:
此时执行爬虫已经可以正常存储数据到本地的mongodb
6、设置定时爬虫
这里我们选择使用linux的crontab来设置定时爬虫,首先编写爬虫脚本,编写tieba.sh文件:
使用vim进行编写
接下来编写tieba.cron定时执行文件,这里我设置每隔20分钟进行一次爬取:
有关crontab的知识大家可以参见http://www.jb51.net/LINUXjishu/19905.html,相信很快就能学会!
接下来使用如下命令让这个定时命令跑起来:
查看我们设置好的定时任务:
大功告成:测试成功,我们可以看到有一条来自虚拟机的mongodb连接:
而我们数据库呢,也已经装满了很多帖子数据:
心满意足,下班回家,希望我的爬虫不会出问题把,大家周末快乐!