我正在用scrapy抓取几个网站,我的输出创建了一个dict列表(每个网站一个)。我希望我的输出只创建一个dict。我试过使用 meta,但我不太理解它,我不能让它工作。
这是我的代码:
class TransferSpider(scrapy.Spider):
# name of the spider
name = 'transfers'
# list of urls to scraping
start_urls = ['https://www.transfermarkt.es/transfers/transfertagedetail/statistik/top/land_id_zu/0/land_id_ab/0/leihe//datum/2022-07-10/sort//plus/1',
'https://www.transfermarkt.es/transfers/transfertagedetail/statistik/top/land_id_zu/0/land_id_ab/0/leihe//datum/2022-07-10/sort//plus/1/page/2']
custom_settings={"FEEDS":{"players.json" : {"format" : "json", 'encoding':'utf-8', 'indent':4}}}
def parse(self, response):
# Extract all text from table
data = response.xpath("//*[@id='yw1']/table/tbody//table//text()").extract()
# Delete space
data = map(str.strip, data)
# Take no empty elements
data = list(filter(lambda x: (x != ''), data))
#print(data)
yield {
'names': data[0::6],
'position': data[1::6],
'origin_club': data[2::6],
'leage_origin_club': data[3::6],
'new_club': data[4::6],
'leage_new_club': data[5::6]
}
可能解决方法不是很难,但我无法得到它
我想要的输出是:
{
Names:[list whit names],
Position:[list with positions]
...
}
2条答案
按热度按时间ctehm74n1#
你不需要指定想要的dict结果......也没有人可以阻止你使用复杂的解决方案。然而,这项工作可以用一种简单的方式来完成,使用python、requests、BeautifulSoup和panda:
这个 Dataframe 可以做成一个法令:
编辑:由于您现在正在确认所需的最终词典,您可以执行以下操作:
将返回:
x6yk4ghg2#
根据你张贴的标签
scrapy
并输出为字典,你可以尝试下一个例子:输出:
...等等