奥拓报废_报废图书馆

奥拓报废

作为我正在进行的项目的一部分,我需要从国家机构那里获取文件。 我决定尝试创建一个“通用”文档刮板,而不是为每个站点编写特定的代码。 可以在主项目https://github.com/Glamdring/state-alerts/中将其作为单独的模块找到。 该项目是用Scala编写的,并且可以在任何JVM项目中使用(前提是您添加了scala jar依赖项)。 它用于抓取文档,而不是随机数据。 可以将其扩展为执行此操作,但是现在我希望它更加面向(状态)文档/开放数据,而不是用于商业抓取的工具(通常对此不屑一顾)。

现在它或多或少是稳定的形式,我已经部署了该应用程序并且可以正常运行,因此,我将仅简要介绍其功能。 关键是只能通过配置指定抓取。 用于配置单个抓取实例的类是ExtractorDescriptor 。 在那里您指定了许多东西:

  • 目标URL,http方法,主体参数(对于POST)。 您可以放置​​一个占位符{x},用于分页
  • 文档类型(PDF,doc,HTML)和抓取工作流程的类型,即文档如何在目标页面上到达。 有4个选项,具体取决于是否有单独的详细信息页面,是否只有表格以及文档链接的位置
  • 元素的XPath表达式,包含元数据和文档的链接。 根据信息所在的位置,有不同的表达方式–在表格中或在单独的详细信息页面中
  • 日期格式,用于文档的日期; 如果XPath无法严格定位日期,则可以选择使用正则表达式
  • 简单的“启发式”-如果您知道要查找的文档的URL结构,则无需通过XPath定位它。
  • 其他配置,例如javascript要求,是否应在错误时抓取失败等。

准备好ExtractorDescriptor实例后(对于Java应用程序,您可以使用构建器来创建一个实例),可以创建一个new Extractor(descriptor) ,然后(通常使用计划的作业)调用extractor.extractDocuments(since)

结果是一个文档列表(有两种方法–一种返回scala列表,一种返回java列表)。

该库取决于htmlunit,nekohtml,scala,xml-apis等,并且在pom中可见。 它不支持多个解析器。 它还不处理刮除任务的分布式运行-您应该自己处理。 尚未发布jar版本或maven依赖项–如果需要,则必须将其签出并构建。 我希望它是有用的。 如果不是代码,则至少是一种以编程方式从网页获取数据的方法。


翻译自: https://www.javacodegeeks.com/2013/09/a-scraping-library.html

奥拓报废

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值