【发布时间】:2015-10-28 17:11:46
【问题描述】:
我的 django 网页有一点速度问题。 我正在制作一个挑选亚马逊文章价格的网站。我的问题是我使用 lxml 来抓取 html 数据,并且每次我重新加载页面时都会重复该功能,并且包含 6 篇文章的页面需要大约 15 秒才能加载。这是我的功能:
def price(self):
if self.amazon_url:
url = self.amazon_url
source_code = requests.get(url)
code = html.fromstring(source_code.text)
prices = code.xpath('//span[@id="priceblock_ourprice"]/text()')
eur = prices[0].replace("EUR ", "")
nospace = eur.replace(" ", "")
nodown = nospace.replace("\n", "")
end = nodown.replace(",", ".")
return float(end)
else:
return 0
好的,现在,这个函数在我的 django 模型类中,也是我认为使页面加载如此缓慢的原因。问题是:一旦我抓取了价格,我可以将它存储在我的 sql 数据库中,这样我每次重新加载页面时都不必使用这个函数吗? 我打算在我的数据库中添加模式产品,所以我想对每个产品只使用一次此功能,然后将价格存储在我的数据库中。 希望你能帮助我,我对python不太好,所以请试着用简单的话来解释一下,谢谢
【问题讨论】:
-
在您的模型上放置一个价格字段并保存您爬入其中的价格,您还可以添加一个日期时间字段来存储价格保存的时间。您每天只能抓取一次价格。
-
问题是我不知道该怎么做
标签: python django database function django-models