通过签证开始URL



我有一个pandas dataframe,我想用作scrapy start url,函数get_links向dataframe打开了xlsx,这有一个列链接,我想在spider上运行蜘蛛,<</p>

我将其转换为dict,

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

我知道这些链接可以通过url = url ['link']实现

 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)

我的问题是有什么方法可以将整个dict传递到parse((中,因此在输出中也产生了dictdf?和废除的输出,

    {'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'}

最新更新