nutch爬取新闻,如何做到指定的定时更新
2014-06-03 14:54
155 查看
适用于 nutch 1.7 版。 建立于 linux环境下。
爬新闻,需要注意的是,
1、一定要更新入口 url 列表 2、爬取过的新闻不需要再爬取 3、如何控制nutch对爬取过的url进行检查
修改nutch-site.xml 添加如下配置
往crontab 定时计划里添加定时执行如下脚本。
如下shell脚本,是控制的关键
爬新闻,需要注意的是,
1、一定要更新入口 url 列表 2、爬取过的新闻不需要再爬取 3、如何控制nutch对爬取过的url进行检查
修改nutch-site.xml 添加如下配置
<!-- 多长时间再抓取抓取之前抓过的页面,单位秒。默认30天 --> <property> <name>db.fetch.interval.default</name> <value>420480000</value> <description>The default number of seconds between re-fetches of a page (30 days). </description> </property> <!-- 多少时间后强制更新整个CrawlDB库 --> <property> <name>db.fetch.interval.max</name> <value>630720000</value> <description>The maximum number of seconds between re-fetches of a page (90 days). After this period every page in the db will be re-tried, no matter what is its status. </description> </property>
往crontab 定时计划里添加定时执行如下脚本。
如下shell脚本,是控制的关键
#!/bin/sh export JAVA_HOME=/usr/java/jdk1.6.0_45 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin #Set Workspace nutch_work=/home/nutch/SearchEngine/nutch-Test tmp_dir=$nutch_work/out_tmp save_dir=$nutch_work/out solrurl=http://192.168.123.205:8080/solr-4.6.1/core-nutch # Set Parameter depth=2 threads=200 #-------Start-------- $nutch_work/bin/nutch inject $tmp_dir/crawldb $nutch_work/urls #-----循环此操作,次数有深度决定----- for((i=0;i<$depth;i++)) do #-----step 1----- if ((i==0)) then $nutch_work/bin/nutch generate $tmp_dir/crawldb $tmp_dir/segments segment=`ls -d $tmp_dir/segments/* | tail -1` else $nutch_work/bin/nutch generate $save_dir/crawldb $save_dir/segments segment=`ls -d $save_dir/segments/* | tail -1` fi #-----step 2----- $nutch_work/bin/nutch fetch $segment -threads $threads #-----step 3----- $nutch_work/bin/nutch parse $segment #-----step 4----- if ((i==0)) then $nutch_work/bin/nutch updatedb $save_dir/crawldb $segment else $nutch_work/bin/nutch updatedb $save_dir/crawldb $segment -noAdditions fi #-----step 5----- $nutch_work/bin/nutch invertlinks $save_dir/linkdb $segment done #-----step 6----- $nutch_work/bin/nutch solrindex $solrurl $save_dir/crawldb -linkdb $save_dir/linkdb $segment #-----step 7----- $nutch_work/bin/nutch solrdedup $solrurl #-----step 8----- rm -rf $tmp_dir/* #-----Finished-----
相关文章推荐
- 问个globle的问题,如何定时更新论坛的数据啊?
- 如何使用数据窗口更新指定的表
- svn 如何实现远程windows的自动化更新(同步更新指定目录)
- Thinkphp中如何书写按照指定字段同步更新的ORM
- jpush如何做到指定用户的推送?
- 智能安全实验室-杀马(Defendio) 2.3.0.409 :任务计划,用户可以定时对指定目标进行扫描、智能更新等
- 微信开发--如何存储并定时更新access_token
- 如何在服务器上面执行定时程序,在指定的时候执行指定的代码
- Android中如何做到自定义的广播只能有指定的app接收
- iOS开发~SDWebImage是如何做到Url不变的情况下,更新图片内容的
- 与服务器同步数据时,如何做到只更新被修改数据?如何节约流量,
- 如何让NComputing桌面终端用户做到独享指定CPU、内存和磁盘大小
- Adroid ListView,GridvVew等列表控件如何只更新指定条目
- python (18)在linux中如何实现定时发送邮件到指定邮箱,监测任务
- [Erlang_Question27]如何监控指定目录下的*.beam文件,如果有改动就更新到指定的节点?
- 如何在Global.asax文件中实现定时采集新闻
- Entity Framework 同一个上下文中,如何进行对同一个实体进行指定字段更新
- Win8如何更新指定驱动程序不想所有设备的驱动程序都更新
- 微信开发--如何存储并定时更新access_token
- 如何有效的学习一门编程语言 总结(持续不定时更新)