【问题标题】:What is the fastest way to get scraped data from so many web pages?从这么多网页中获取抓取数据的最快方法是什么?
【发布时间】:2013-04-19 06:29:49
【问题描述】:

我需要同时废弃大约 40 个随机网页。这些网页因每个请求而异。 我在 python 中使用 rpcs 来获取 url 并使用 BeautifulSoup 抓取数据。报废所有数据并显示在屏幕上大约需要 25 秒。

为了提高速度,我将数据存储在 appengine 数据存储中,这样每个数据只被抓取一次,并且可以从那里快速访问。

但问题是 -> 随着数据存储区中数据大小的增加,从数据存储区获取数据所需的时间太长(比抓取还多)。

我应该使用 memcache 还是转移到 mysql? mysql 比 gae-datastore 快吗? 或者有没有其他更好的方法来尽快获取数据?

【问题讨论】:

  • 如果抓取过程是“停止的”,即它等待每个请求完成后再继续,那么通过使用异步设计(分叉),这是一个很大的改进空间,所以它会处理多个网页。
  • 已经是异步的了。我用过 RPCs:link.
  • Memcached 可能是最快的。但是,如果从 appengine 数据存储中检索数据所花费的时间随着您存储的行数而严重下降,那么听起来您的查询可能存在问题,没有有效地使用索引
  • @robert_b_clarke,Thanx.. 这是我的代码的问题.. 它在每次请求时再次为一两个 url 获取数据.. 现在它工作正常.. 我还应该使用 Memcached 吗?

标签: python mysql google-app-engine google-cloud-datastore web-scraping


【解决方案1】:

根据我对您的应用程序的了解,使用 memcache 是有意义的。它会更快,并且会自动处理过期缓存条目等问题。

【讨论】:

    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多