Есть ли способ получить значение из словаря возврата в Scrapy? - PullRequest
1 голос
/ 06 марта 2020

Мне нужно сохранить выходные данные метода parse_link для анализа переменной метода job_des. Затем я должен сохранить его в элементы. Мне нужно только сохранить значение ключа, который существует в словаре, но я получаю сообщение об ошибке, что он не подписан. Есть ли способ сделать это?

import scrapy
from ..items import ScrapcareerItem

class CarSpider(scrapy.Spider):
    name = "car"
    start_urls = ['https://www.example.com/']
    def parse(self, response):
        items=ScrapcareerItem()
        abc = response.xpath("xpath").extract()
        for ab in abc:
            sub_car = response.xpath(xpath).extract()
            items['abc']=abc
            items['sub_car']=sub_car
            info = response.xpath("xpath")
            for link in info:
                url = response.urljoin(link.extract())
                job_des=scrapy.Request(url, callback=self.parse_link)
                yield job_des

    def parse_link(self,response):
        job_des = response.xpath("xpath").extract()
        return {'job_des':job_des}```

1 Ответ

1 голос
/ 06 марта 2020

Вы можете сделать что-то вроде этого:

class CarSpider(scrapy.Spider):
    name = "car"
    start_urls = ['https://www.example.com/']
    def parse(self, response):
        items=ScrapcareerItem()
        abc = response.xpath("xpath").extract()
        for ab in abc:
            sub_car = response.xpath(xpath).extract()
            items['abc']=abc
            items['sub_car']=sub_car
            info = response.xpath("xpath")
            for link in info:
                url = response.urljoin(link.extract())
                yield scrapy.Request(url, callback=self.parse_link)

    def parse_link(self,response):
        job_des = response.xpath("xpath").extract()
        yield {'job_des':job_des}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...