利用windows上的虚拟机执行定时爬虫并存入本地数据库!!

今天在畅游的主要工作内容是爬取百度贴吧的内容,今天上玩班就要三天碰不到公司的电脑,所以想搞一个定时任务,能在这三天里面每半个小时执行一次爬虫,但是自己不太熟悉windows下定时执行爬虫,所以想到了一个不成熟的想法,利用linux来解决问题,于是忙碌的一天开始了!

1、windows安装mongodb

windows安装mongodb,其实还是比较简单的,首先去官网上下载一个windows版本的mongodb安装包

地址为:https://www.mongodb.com/download-center?jmp=nav#community

选择一个合适的版本就好,这里我选择:

下载完后点击安装,一路下一步即可,这里我忘记了更换安装路径,无奈装到了c盘。

注意把mongodb的bin路径添加到系统路径:

添加mongodb到系统路径

接下来,需要新建一个用于存储数据文件的文件件,我建在了d盘 mongodb/data路径下,那么首先进入到mongodb的bin路径,在windows的控制台下使用如下命令进行启动:

mongod -dbpath "d:\mongodb\data"

启动成功!

成功启动!

2、编写爬虫

scrapy相信大家都比较熟,经过两三个小时的编写把,成功编写了一个百度贴吧的爬虫,并将抓取到的数据存入mongodb,最终的爬虫效果如下:

爬虫效果1

这里除了帖子的基本信息外,还保存了第一页的回复信息,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地址使用:

ping成功!

5、将代码放入虚拟机中,并配置开发环境

把代码从本地放入虚拟机中,可以考虑使用u盘拷贝的方式,在虚拟机中,我们需要修改连接mongodb的代码,如下图所示,使用刚才我们设置好的ip:

修改连接ip

此时执行爬虫已经可以正常存储数据到本地的mongodb

6、设置定时爬虫

这里我们选择使用linux的crontab来设置定时爬虫,首先编写爬虫脚本,编写tieba.sh文件:

使用vim进行编写

爬虫执行脚本

接下来编写tieba.cron定时执行文件,这里我设置每隔20分钟进行一次爬取:

有关crontab的知识大家可以参见http://www.jb51.net/LINUXjishu/19905.html,相信很快就能学会!

接下来使用如下命令让这个定时命令跑起来:

查看我们设置好的定时任务:

查看定时任务

大功告成:测试成功,我们可以看到有一条来自虚拟机的mongodb连接:

而我们数据库呢,也已经装满了很多帖子数据:

心满意足,下班回家,希望我的爬虫不会出问题把,大家周末快乐!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容