嘿,伙计们,偶尔我需要自动从网站收集数据。有时我需要一个目录中的一堆URL,有时我需要一个XML站点地图(是的,我知道有很多软件用于这个和在线服务)。
无论如何,作为对我上一个问题的跟进,我写了一个小的网络爬虫,可以访问网站。
如果存在上述限制,这是编写爬虫的好方法吗?任何投入都会有很大帮助:)
http://pastebin.com/VtgC4qVE - Main.java
http://pastebin.com/gF4sLHEW - JCrawler.java
http://pastebin.com/VJ1grArt - HTMLUtils.java
发布于 2010-05-29 19:38:53
我已经在我的公司写了一个自定义的网络爬虫,我遵循你提到的类似的步骤,我发现它们只是perfect.The -on,我想说的是,它应该有一个轮询频率在一定时间后爬行。
因此,它应该遵循“观察者”的设计模式,这样如果在给定的url上找到任何新的更新,那么它就会更新或写入文件。
发布于 2010-05-29 23:03:07
您的爬虫似乎不尊重robots.txt在任何方面,并使用假的User-Agent
字符串来炫耀,就像它是一个网页浏览器。这可能会导致未来的法律纠纷。把这个记下来。
发布于 2010-05-30 08:00:11
我建议将开源JSpider作为爬虫项目的起点,它涵盖了web爬虫的所有主要关注点,包括robots.txt,并且有一个插件方案,您可以使用它将自己的任务应用于它访问的每个页面。
这是对JSpider的一个简短的、略为过时的回顾。这里的页面回顾了其他几个Java应用程序。
http://www.mksearch.mkdoc.org/research/spiders/j-spider/
https://stackoverflow.com/questions/2936068
复制相似问题