如何提出附加请求并从中获取数据?

问题描述 投票:1回答:1

我需要对网站的数据进行解析。解析之后,必须将数据保存到磁盘上。我正在使用scrapy。工作时,我需要从另一个页面获取数据。我如何才能做到这一点?

class MySpider(scrapy.Spider):

    name = "my_spyder"

    start_urls = [
        'https://www.example.com/title/1',
        'https://www.example.com/title/2',
        'https://www.example.com/title/3',
    ]

    def parse(self, response):
       item = MyItem()
       main_page_selector = Selector(response)
       ...
       tagline_url = os.path.join(response.url, 'taglines')
       request = Request(url=tagline_url, callback=get_tags)   
       item['tags'] = yield request
       ...
       yield item

    def get_tags(self, response):
        tagline_selector = Selector(response)
        taglines = []
        for tag in tagline_selector.xpath('//div[@class="soda even"))]/text()').getall():
            taglines.append(tag.strip())

        return taglines

如何在'get_tags'函数中接收到的'item'字段中写入'tags'?这些请求是异步执行的。

python scrapy
1个回答
1
投票
request = Request(url=tagline_url, callback=get_tags)
request.meta["item"] = item
yield request

以上是关于解析方法的代码

item = response.meta["item"]
#...
item["tags"] = taglines
yield item

get_tags方法中的第二段代码。

© www.soinside.com 2019 - 2024. All rights reserved.