我使用下面的代码爬过一个页面上的多个链接,并从每个相应的链接获取数据列表:import scrapy
class testSpider(scrapy.Spider):
name = "quotes"
start_urls = ['http://www.website.com']
def parse(self, response):
urls = response.css('div.subject_wrapper > a::attr(href)').extract()
for url in urls:
url = response.urljoin(url)
yield scrapy.Request(url=url, callback=self.getData)
def getData(self, response):
data = {'data': response.css('strong.data::text').extract()}
yield data
它工作得很好,但由于它返回每个链接的数据列表,当我输出到CSV时,它看起来如下所示:
^{pr2}$
是否有任何简单有效的方法可以将数据输出为一个没有任何重复的行列表(相同的数据可以出现在多个页面上),类似于下面的方法?在dalegribel
Chad
Ninoovcov
Gotenks
...
我尝试过使用一个数组,然后在每个元素上循环以获得一个输出,但是得到了一个错误:yield只支持'Request,BaseItem,dict or None'。另外,由于我将在大约10k个条目上运行此操作,所以我不确定将数据存储在数组中是否会过多地减缓清理速度。谢谢。在