我正在开发一种产品,我们需要一种功能来抓取用户给定的URL并发布其独立的移动网站。在抓取过程中,我们希望抓取网站内容,CSS,图片和脚本。该产品用于执行更多活动,例如安排一些营销活动和所有活动。我想问的是什么 -
执行此任务的最佳实践和开源框架是什么?
我们应该在应用程序本身中执行此操作,还是应该有另一台服务器来执行此活动(如果此活动需要加载)?请记住,我们每个月都有1个“缺乏”用户访问,从网站上发布他的移动网站,以及大约1-2k并发用户。
该应用程序使用Java和Java EE平台构建,使用Spring和Hibernate作为服务器端技术。
答案 0 :(得分:1)
我们使用Derkley DB Java版来管理链接的堆外队列以进行爬网,并区分待下载的链接和尚未下载的链接。
解析HTML TagSoup是野外互联网中最好的选择。
Batik是解析CSS和SVG的选择。
PDFBox非常棒,允许从PDF中提取链接
Quartz调度程序是事件调度的行业验证选择。
是的,您需要一台或多台服务器进行爬网,一台服务器用于聚合结果和调度任务,也许还需要另一台服务器用于WEB前端和后端。
答案 1 :(得分:0)
我正在实施基于Selenium HtmlUnit Driver的抓取项目。我认为这是自动化无头浏览器的最佳Java框架。