【发布时间】:2021-03-14 10:46:43
【问题描述】:
我有一个文件,它从站点地图 .xml 文件中抓取数据,并从每个页面下载一些数据。每次我启动抓取功能时,我都会去这个 xml 获取要抓取的 URL,将它们放在一个列表中,将它们与我已经下载的 url 列表进行比较,因此只需抓取其余部分。我将这些 URL 用作 mongodb 的 _id:
list_of_ids = collection.find().distinct('_id')
start_urls = list(set(new_url_list)-(set(list_of_ids)))
我现在遇到了以下错误:
pymongo.errors.OperationFailure: distinct too big, 16mb cap, full error: {'ok': 0.0, 'errmsg': 'distinct too big, 16mb cap', 'code': 17217, 'codeName': 'Location17217'}
我假设我可以遍历数据库并将每个 _id 附加到一个列表中,但是虽然我并不热衷于性能,但一定有更好的方法吗?
【问题讨论】:
标签: python mongodb list pymongo distinct