gpt4 book ai didi

python - 在 scrapy 起始 url 中传递 Dict

转载 作者:行者123 更新时间:2023-11-30 22:16:17 26 4
gpt4 key购买 nike

我有一个 Pandas DataFrame,我想将其用作 Scrapy Start URL,函数 get_links 打开一个到 DataFrame 的 xlsx,其中有一个我想在其上运行蜘蛛的 Column LINK,

我使用将其转换为字典,

dictdf = df.to_dict(orient='records']

我知道这些链接可以通过 url = url['LINK'] 实现,但我想做的是将整个字典传递到 scrapy 输出中

 dictdf = {'Data1':'1','Data2':'2','LINK':'www.link.com',.....,'Datan':'n'}


# start urls
def start_requests(self):
urls = get_links()


for url in urls:
yield scrapy.Request(url=url['LINK'], callback=self.parse)

我的问题是有没有办法将整个字典传递到 parse() 中,以便在输出中也产生 dictdf ?和 scrapy be 的输出,

    {'ScrapedData1':'d1','Data1':'1','Data2':'2','LINK':'www.link.com',.....,'Datan':'n'}

最佳答案

如果我理解正确的话,您想从 start_requests 方法中继承一些数据。

为此,您可以使用 Request.meta 属性:

def start_requests(self):
data = [{
'url': 'http://httpbin.org',
'extra_data': 'extra',
}]
for item in data:
yield Request(item['url'], meta={'item': item})

def parse(self, response):
item = response.meta['item']
# {'url': 'http://httpbin.org', 'extra_data': 'extra'}

关于python - 在 scrapy 起始 url 中传递 Dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com