抓取网站(Nutch)和索引结果(Solr)的单个抓取脚本
Single Crawl script to Crawl website (Nutch) and Index results (Solr)
我是 Nutch 和 Solr 的新手。我刚刚接管了活动,现在必须抓取和索引我的网站。
这些是我被要求遵循的步骤。
删除爬网文件夹(apache-nutch-1.10\crawl)
删除现有索引:
Solr-Admin-> Skyweb->Documents->Document Type (xml) and execute
:
- 转到 Solr-Admin -> Core Admin -> 单击 'Reload' 然后 'Optimize'
- 并且 运行 使用以下命令的抓取作业:
bin/crawl -i -D solr.server.url=http://IP:8080/solr/website/ urls/
crawl/ 5
我做了一些研究,觉得手动完成这些任务太累了,脚本应该处理所有上述任务。
所以我的 queries\concerns 是:
上面的脚本不是搞定了整个过程吗?我是否还需要手动删除爬网文件夹并清除现有索引?
管理任务的相关性是什么 - 'Reload' 和 'Optimize'?
我可以 cron 将抓取脚本安排到每周 运行 吗?它会处理整个过程吗?
我还能如何定期自动对 运行 进行抓取和索引?
放松!放轻松 !!你有没有研究过 Apache ManifoldCF 项目?它提供了一个干净的界面来抓取网页,比 Nutch 更好,以减少麻烦。它是开源的,您可以在几分钟内设置一个包含所有参数的作业,并在您选择的服务器中为您的数据编制索引,无论是 Solr、Elastic Search 等。而且,一旦您设置了作业,您就可以保存设置,这样您就不必间歇性地进行配置。它还支持 Rest API,这肯定允许您在运行中自动执行您的工作。 Google 它。你不会后悔的。希望有所帮助 :) .
有两种可能的方法:
配置Nutch在一周后重新抓取之前抓取的所有页面,见属性db.fetch.interval.default
。保持 crawl/ 文件夹和 Solr 索引不变。 Nutch 会自动从 Solr 中删除消失的页面。 EV。您应该在每次抓取后删除旧段 (rm -rf crawl/segments/*
),以避免磁盘随时间填满。
从头开始每次爬网(只需在调用 bin/crawl
之前删除文件夹 crawl/
。也可以从命令行删除 Solr 索引,例如通过触发:
curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8'
curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'
组合这些命令并不难,并且将 bin/crawl
的调用包含在一个简短的 shell 脚本中,该脚本可以由 cronjob 调用。当然,根据自己的需要修改脚本也很容易bin/crawl
。
我是 Nutch 和 Solr 的新手。我刚刚接管了活动,现在必须抓取和索引我的网站。
这些是我被要求遵循的步骤。
删除爬网文件夹(apache-nutch-1.10\crawl)
删除现有索引:
Solr-Admin-> Skyweb->Documents->Document Type (xml) and execute :
- 转到 Solr-Admin -> Core Admin -> 单击 'Reload' 然后 'Optimize'
- 并且 运行 使用以下命令的抓取作业:
bin/crawl -i -D solr.server.url=http://IP:8080/solr/website/ urls/ crawl/ 5
我做了一些研究,觉得手动完成这些任务太累了,脚本应该处理所有上述任务。
所以我的 queries\concerns 是:
上面的脚本不是搞定了整个过程吗?我是否还需要手动删除爬网文件夹并清除现有索引?
管理任务的相关性是什么 - 'Reload' 和 'Optimize'?
我可以 cron 将抓取脚本安排到每周 运行 吗?它会处理整个过程吗?
我还能如何定期自动对 运行 进行抓取和索引?
放松!放轻松 !!你有没有研究过 Apache ManifoldCF 项目?它提供了一个干净的界面来抓取网页,比 Nutch 更好,以减少麻烦。它是开源的,您可以在几分钟内设置一个包含所有参数的作业,并在您选择的服务器中为您的数据编制索引,无论是 Solr、Elastic Search 等。而且,一旦您设置了作业,您就可以保存设置,这样您就不必间歇性地进行配置。它还支持 Rest API,这肯定允许您在运行中自动执行您的工作。 Google 它。你不会后悔的。希望有所帮助 :) .
有两种可能的方法:
配置Nutch在一周后重新抓取之前抓取的所有页面,见属性
db.fetch.interval.default
。保持 crawl/ 文件夹和 Solr 索引不变。 Nutch 会自动从 Solr 中删除消失的页面。 EV。您应该在每次抓取后删除旧段 (rm -rf crawl/segments/*
),以避免磁盘随时间填满。从头开始每次爬网(只需在调用
bin/crawl
之前删除文件夹crawl/
。也可以从命令行删除 Solr 索引,例如通过触发:curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8' curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'
组合这些命令并不难,并且将 bin/crawl
的调用包含在一个简短的 shell 脚本中,该脚本可以由 cronjob 调用。当然,根据自己的需要修改脚本也很容易bin/crawl
。