0

我正在尝试使用 Ruby on Rails 实现一个工具,它应该抓取网页并搜索超链接。有一个问题:如果网站有大量的链接,用户需要等待很多时间。

这可能是一个幼稚的问题:如何显示结果(例如 10 个结果)并且爬取过程仍在运行?

然后,用户单击“下一步”,它会显示接下来的 10 个链接,依此类推。

4

1 回答 1

0

想象一个页面有一个链接列表。

  1. 在控制器中实现一个动作,给定链接列表中的 a 位置,给出接下来的 10 个链接并从要显示的数据中返回一个 json。
  2. 使用javascript,用零调用刚刚实现的动作,获取json,解析并显示在屏幕上。
  3. 重复第 2 步,将链接数作为参数添加到 ajax 调用,直到它接收到零个链接

如果您在调用中获取页面上的所有链接,将其显示给用户,然后重复给用户,这将更加有效。如下所示:

  1. 对于给定的页面,添加一个操作,返回它在 json 中的所有链接
  2. 对该操作进行 ajax 调用,获取链接,显示,然后使用每个给定链接作为参数,以爬取到这些链接。
  3. 在没有更多链接的情况下执行此操作。保留链接黑名单以避免循环。

如果您没有 ajax 部分,请检查wikipedia 上的 ajax 定义这个问题

于 2013-09-01T18:03:23.900 回答