0

我有一个网络爬虫,可以查找我想要的特定信息并将其返回。这是每天运行的。

问题是我的爬虫必须做两件事。

  1. 获取它必须抓取的链接。
  2. 爬行说链接并将东西推送到数据库。

#1 的问题是,总共有 700 多个链接。这些链接不会经常更改 - 也许每月一次?

因此,一种选择是每月对“链接列表”进行一次单独的爬网,然后将链接转储到数据库中。

然后,让爬虫每天对这 700 个链接中的每一个进行 db hit。

或者,我可以在我的爬虫中进行嵌套爬取 - 每次爬虫运行时(每天),它都会更新这个 700 个 URL 的列表并将其存储在一个数组中,然后从这个数组中提取它来抓取每个链接。

哪个更高效,对 Heroku 或任何主机的征税更少?

4

1 回答 1

3

这取决于您如何衡量“效率”和“征税”,但本地数据库命中几乎肯定比 HTTP 请求 + 解析链接的 HTML(?)响应更快和“更好”。

此外,这可能并不重要,但是(假设您的数据库和适配器支持它)您可以开始遍历数据库请求结果并处理它们,而无需等待或将整个集合提取到内存中。

网络延迟和资源将比戳已经坐在那里、正在运行并设计为高效快速查询的数据库要糟糕得多。

但是:每天一次?是否有充分的理由花费精力优化这项任务?

于 2012-06-19T22:55:57.757 回答