首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能让我的刮板网站-设计-更改容错?

我怎样才能让我的刮板网站-设计-更改容错?
EN

Stack Overflow用户
提问于 2012-07-14 09:27:29
回答 1查看 508关注 0票数 3

我已经用ruby写了一个网页抓取器。但是我正在抓取的网站已经改变了它们的design.Thus,我的刮板正在失效。有没有一种聪明而简单的解决方案来解决这种固有的刮刀问题?(例如..使用某种模式匹配、xpath、比较DOM tress...etc)

代码语言:javascript
复制
EM.run {
 http_request = EM::HttpRequest.new(url, opts).get
 http_request.callback { |body|
 doc = Nokogiri.parse(body.response)
 doc = Nokogiri::HTML(body.response)
 puts doc.css(".poster_information")
 puts doc.css(".date")
 puts doc.css(".comment_block")
}

在上面的示例代码片段中,我在上面提到的网站上抓取海报信息,发布日期和一个网页的css选择器的帮助下发布的评论。现在假设网站管理员改变了论坛的布局。css选择器将失败,因此我的整个抓取器也将失败。我不想每次网站的布局改变时都更新我的刮板。那么有没有办法让我的抓取器检测到网站布局的改变,并且能够正确地找到到达所需目的地的路径呢?因为我没有办法知道网站什么时候会改变。我只是想让我的刮刀自动化和容错。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-19 00:38:36

您可以编写定期运行的集成测试,以便在页面更改时通知您。如果页面结构频繁更改,我还会将选择器模式提取到一个配置中,并构建一个UI来方便地编辑我想要实际抓取的选择器。顺便说一句,您可能还有兴趣检出capybara,以便在更高的级别上控制刮板。如果您还需要JS功能,则可以使用capybara-webkit

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11480266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档