【发布时间】: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