2
我有一個在Django項目中抓取成千上萬個URL的爬蟲。爬行每兩小時執行一次。每秒有多個請求會降低數據庫的速度。如何在Django中使用臨時存儲器?
這是蜘蛛解析方法:
def parse(self, response):
httpstatus = response.status
url_obj = response.request.meta['url_obj']
xpath = url_obj.xpath
elements = response.selector.xpath(xpath + '/text()').extract()
... EXCEPTIONS ...
Scan.objects.create(url=url, httpstatus=httpstatus,
price=price,
valid=True)
正如你所看到的,我有充分的請求後才能訪問數據庫(幾十秒鐘),但這個數據庫是由用戶使用過。而且,在整個掃描完成之前,我不能在前端使用這些Scan
對象。
我的想法是爲新創建的Scan
對象創建某種中介/臨時存儲,然後在掃描完成後將它們移動到主數據庫。
我該怎麼做?你有什麼想法?
https://docs.djangoproject.com/en/1.11/topics/cache/#memcached –
@SachinKukreja這可怎麼幫?而且,將數據保存在內存中的數據太多。你能詳細說明一下嗎? –