嘿伙计们,每隔一段时间我都需要自动从网站收集数据任务。有时我需要一个目录中的一堆URL,有时候我需要一个XML站点地图(是的,我知道有很多软件和在线服务)。网络爬虫,反馈?
不管怎么说,跟上我之前的问题,我已经写了一个可以访问网站的小webcrawler。
基本爬虫类,以方便,快捷地与一个网站交互。
覆盖“doAction(String URL,String content)”来进一步处理内容(例如存储它,解析它)。
Concept允许抓取程序的多线程。所有类实例共享已处理和排队的链接列表。
可以建立一个JDBC连接来存储链接到数据库中,而不是跟踪对象中的处理链接和排队链接。
但是,目前仅限于一个网站,可以通过添加externalLinks堆栈并根据需要添加到其中来扩展它。
JCrawler旨在用于快速生成XML站点地图或解析网站以获取所需信息。它轻巧。
这是写的爬虫好/体面的方式,提供上述的限制?任何投入将极大地帮助:)
http://pastebin.com/VtgC4qVE - Main.java
http://pastebin.com/gF4sLHEW - JCrawler.java
http://pastebin.com/VJ1grArt - HTMLUtils.java
谢谢你的回答。什么是投票?蜘蛛本身并没有连续运行,但我想我可以通过一些改变来做到这一点;在这种情况下,我完全同意观察者的设计模式。事实上,我个人可能会在doAction中实现更新的东西。 – 2010-05-29 19:46:56
轮询只不过是爬行的时间段。让我们说5分钟,这意味着每隔5分钟它就会抓取到一个特定的URL。 – 2010-05-29 20:03:15