【发布时间】:2015-03-28 03:21:01
【问题描述】:
我编写了一个从第三方网站检索数据的 Ruby 网络爬虫。我正在使用 Nokogiri 根据特定的 CSS div 和特定字段提取信息(访问我提取的节点的子节点和元素)。
第三方网站的结构不时会发生变化,从而破坏爬虫(element[1].children[2]可能需要更改为element[2].children[0])。
到目前为止,我有一个实用程序可以打印我提取的节点的结构,它允许我在结构发生变化时快速修复解析器。我还有一个自动化流程,控制它可以提取“一些”值。
我想知道是否有更优雅的方式来处理这个问题。如何编写一个易于维护的爬虫?
【问题讨论】:
-
如果你想在工业规模上做,你可以写一个浏览器插件,让外包工人点击你想刮的领域。然后它将找到这些字段的 XPATH 并提取值。如果格式发生变化,请添加一个任务(MTurk?)供人工加载页面并重新单击要提取的字段。
-
给出的答案是很好的建议,但是,如果没有您尝试解析的 HTML 的实际示例,我们只能提供一般/通用建议。
标签: ruby web-crawler nokogiri