注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

长风明志的博客

不要也不能做下一个谁,应该且可以做第一个自己

 
 
 

日志

 
 

Windows下让Nutch定时自动执行爬取网页(简单可行)  

2012-05-08 23:39:22|  分类: 搜索引擎 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.为解决这问题,我看了挺多网上的资料,有的说用通过启动cygwin下提供的crontab/cron来实现,其原文是:

老早以前用 cygwin 的时候,以 linux 的思维方式, crontab -e 制定完任务以后,发现怎么也执行不了。

前阵子又进一步了解了 cygwin ,原来还需要启动一个服务才能够搞定 cron 。cygwin 下不仅仅是 cron 需要以 windows 服务的方式启动,消息队列、共享内存以及信号量等进程间通信方式也需要以 windows 服务方式启动 cygserver 以后才可用。除了 cron 包,还需要确认 cygrnsrv 包已经安装:

# 安装 cron 服务
cygrunsrv -I cron -p /usr/sbin/cron -a -D
# 启动服务: 也可以用 windows 的启动方式 net start cron
cygrunsrv -S cron

# 启动 cygserver
cygrunsrv -I cygserver -p /usr/sbin/cygserver -e "CYGWIN=server"

启动 cron 以后,即使关闭 cygwin 命令窗口,crond 还是会继续运行 :) ,而且默认是自动启动的服务,重启机器以后依然运行—不需要开 cygwin 窗口。

我试了之后,提示说:  cygrunsrv 命令未找到,之后上网搜了资料说是该服务没有开启,但也不懂怎么开启,就不了了之了。。。

2.之后,想通过编写bat文件来实现该问题的解决,网上有如何写实现该bat文件来模拟cygwin的执行,从而使用Windows的计划任务实现Nutch的自动执行。但是提供的bat文件比较麻烦、复杂。  这里提供一个绝对更简单的方法实现bat文件(当然要使用到cygwin):

在cygwin的安装目录下,我的是:C:\cygwin下,新建RunCygwin.txt文件,添加如下代码:

@echo off
:: execute Nutch program in Cygwin by Bat               By:changfengmingzhi
 C:
chdir C:\cygwin\bin

set HOME=/cygdrive/c/apache-tomcat-7.0.23/bin
bash -c "shutdown.bat"
rmdir /s/q C:\apache-nutch-1.2\bin\localweb\crawldb
rmdir /s/q C:\apache-nutch-1.2\bin\localweb\index
rmdir /s/q C:\apache-nutch-1.2\bin\localweb\indexes
rmdir /s/q C:\apache-nutch-1.2\bin\localweb\linkdb
rmdir /s/q C:\apache-nutch-1.2\bin\localweb\segments
set HOME=/cygdrive/c/apache-tomcat-7.0.23/bin
bash -c "startup.bat"
set HOME=/cygdrive/c/apache-nutch-1.2/bin
bash --login -i -c "sh nutch crawl urls -dir localweb -depth 1 -topN 1"
set HOME=/cygdrive/c/apache-tomcat-7.0.23/bin
bash -c "shutdown.bat"
bash -c "startup.bat"

最后保存为RunCygwin.bat文件即可。

注:我用的是Nutch1.2版本,在用Nutch进行重新爬取时,如果不删除localweb文件夹(自定义的)下的目录crawldb
、index、indexes、linkdb、segments会出现错误的~~~

3. 为该RunCygwin.bat文件添加计划任务即可实现Nutch的定时爬取功能:

利用任务计划程序自动运行则应执行如下步骤:

  1. 单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows 的任务计划管理程序。
  2. 在"任务计划"窗口中双击"添加任务计划"图标,启动系统的"任务计划向导",然后单击"下一步"按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击"下一步"按钮。
  3. 设置适当的任务计划名称并选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击"下一步"按钮。此时系统将会要求用户对程序运行的具体时间进行设置,如几号、几点钟、哪几个时间段才能运行等,我们只需根据自己的需要加以设置即可。
  4. 接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行。
  5. 最后,我们只需单击"完成"按钮即可将相应任务添加到Windows 的任务计划程序中,此后它就会自动"记住"这个任务,一旦系统时间及相关条件与用户设置的计划相符,它就会自动调用用户所指定的应用程序,十分方 便(每次启动Windows 的时候,任务计划程序都会自动启动,并在后台运行,确保用户的计划能够按时执行)。

好了,大功告成~~~~~~~~~(*^__^*) 嘻嘻

  评论这张
 
阅读(1728)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017