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

浏览: 2816

今天在畅游的主要工作内容是爬取百度贴吧的内容,今天上玩班就要三天碰不到公司的电脑,所以想搞一个定时任务,能在这三天里面每半个小时执行一次爬虫,但是自己不太熟悉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地址使用:

ping成功!

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

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


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

6、设置定时爬虫

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

使用vim进行编写


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

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

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

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


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

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

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

推荐 1
本文由 石晓文 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册