当我抓取网站时,我产生的项目会去哪里?
Where do my yielded items go when I'm scraping a website?
我正在使用 scrapy 来抓取网站。我有这段代码可以擦除我的 data.json 文件中的现有数据:
with open('data.json', 'r+') as f:
if f:
f.truncate(0)
然后,我将数据生成到物品容器中:
items['price'] = price
items['name'] = name
yield items
在函数结束时,我向列表中的下一个 url 发出请求:
yield scrapy.Request(next_url, callback=self.parse)
我注意到一旦爬虫停止,所有数据都会写入文件。我想知道我抓取的数据是如何存储的。它会作为生成器存储,然后在所有递归完成后最后访问吗?还是我连续做两次事情?也就是说,产生我的数据然后再次通过代码产生请求?我认为这更多是对生成器缺乏了解,因此非常感谢任何见解。
我正在使用 scrapy 来抓取网站。我有这段代码可以擦除我的 data.json 文件中的现有数据:
with open('data.json', 'r+') as f:
if f:
f.truncate(0)
然后,我将数据生成到物品容器中:
items['price'] = price
items['name'] = name
yield items
在函数结束时,我向列表中的下一个 url 发出请求:
yield scrapy.Request(next_url, callback=self.parse)
我注意到一旦爬虫停止,所有数据都会写入文件。我想知道我抓取的数据是如何存储的。它会作为生成器存储,然后在所有递归完成后最后访问吗?还是我连续做两次事情?也就是说,产生我的数据然后再次通过代码产生请求?我认为这更多是对生成器缺乏了解,因此非常感谢任何见解。