专栏首页小小挖掘机又动歪脑筋--利用windows上的虚拟机执行定时爬虫并存入本地数据库!!

又动歪脑筋--利用windows上的虚拟机执行定时爬虫并存入本地数据库!!

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

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

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

本文分享自微信公众号 - 小小挖掘机(wAIsjwj)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NoSQL | Redis、Memcache、MongoDB特点、区别以及应用场景

    本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis、Memcache、MongoDB特点、区别以及应用场景。 ? Nosql介绍...

    码神联盟
  • 如何保证redis的安全?

    redis的作者的理念是‘简洁为美’,所以并没有为redis设计复杂的安全配置 redis需要运行在安全的环境下,要做好redis外部的安全工作,例如不使用re...

    dys
  • 小程序点评和有用小程序推荐

    已经体验了上百款小程序,有一些想法分享下: 大部分小程序都是没有卵用的,也许打开一次之后再也不会主动去打开了; 大部分有app的小程序,功能欠缺较多,目前尚不能...

    前朝楚水
  • solr or es 结合弥补mongodb的全文检索功能

    最近将公司的solr集群升级到了最新的6.5版本。 之前用了N年的是3点多的版本,那个时候solr还不支持自带的集群,集群方式都是自己实现的。 公司里用的最多的...

    猿天地
  • 从摩拜总是出现服务故障谈谈技术这件小事

    最近几天不知道怎么了,摩拜单车总是出现故障。 不是扫不了码就是关闭自行车时,车已经锁了,但是app上显示的还是使用中,也就是在关闭锁的一瞬间刚刚好服务器出问题了...

    猿天地
  • NoSQL篇 | NoSQL从小白到码神 之 Redis篇

    课程目录: - NoSQL背景 - NoSQL简介 - NoSQL和关系型数据库对比 - Redis简介 - Redis下载安装配置(Linux环境) - R...

    码神联盟
  • Redis的消息机制 - 发布订阅

    发布订阅(pub/sub)是一种消息通信模式,主要目的是解除消息发布者、消息订阅者之间的耦合 pub/sub的特点 (1)时间非耦合 发布者和订阅者不必同时在线...

    dys
  • 锁系列-Mysql中的锁

    在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。 目录: 1、行级锁、表级锁、页级锁 2、共享锁和排它...

    ImportSource
  • MongoDB支持ACID了!

    一个重磅消息,MongoDB支持ACID事务了。这也是社区里一直呼吁的事情,这一目标终于要实现了。这里的ACID事务是针对多文档间的事务,multi-docum...

    ImportSource
  • 又拍网数据库架构案例分析

    这篇文章是对又拍网公布的数据库案例的分析总结 又拍网是一个大型照片分享社区,数据库架构也是从简单到复杂发展起来的 数据库进化过程 (1)一主一从 最初...

    dys

扫码关注云+社区

领取腾讯云代金券