Как правильно вызвать другую функцию при разборе текущей страницы? - PullRequest
1 голос
/ 24 марта 2019

В настоящее время я пытаюсь очистить страницы фильма IMDB и до сих пор могу очистить детали фильма.Однако, чтобы очистить отзывы пользователей, мне нужно перейти на отдельную страницу от самой страницы фильма, которая в настоящее время не уверена, верен ли мой подход к решению этой проблемы.

Я использую глобальную переменную (данные[]) для хранения различных полей (которые в конечном итоге будут выгружены в файл json для эластичного поиска), однако одна из моих функций, похоже, не вызывается, и я не уверен, что мне не хватает

Общая логика, о которой я думаю, заключается в следующем: 1. Захватить все ссылки в моем списке (parse_movie_list) 2. Для каждой ссылки зайдите внутрь и очистите детали этого отдельного фильма (parse_individual_movie) 3. После того, как закончите, перейдите к очисткеобзоры (parse_individual_movie_reviews) 4. Данные о доходности


def parse_movie_list(self, response):
    links = response.css('span.lister-item-header a::attr(href)').extract()
    for link in links:
        yield response.follow(link, callback=self.parse_individual_movie)
def parse_individual_movie(self, response):

    reviewlink = response.xpath("//div[contains(@id, 'quicklinksMainSection')]/a[3]/@href").extract()[0] or None
    data['reviewlink'] = reviewlink
    newlink = "https://www.imdb.com"+reviewlink
    request = scrapy.Request(newlink,callback=self.parse_individual_movie_reviews)        

    yield data

def parse_individual_movie_reviews(self,response):

    reviews = response.xpath('//div[contains(@id, "main")/section/div[2]/div[2]/div[1]/div[1]/div[1]/div[3]/div[1]/text()').extract() or None

    data['reviewLA'] =  [reviews.strip() for review in reviews] or None

    yield reviews

В настоящее время моя проблема заключается в том, что parse_individual_movie_reviews не вызывается (так как окончательный JSON не отражает существование reviewLA), в идеалецель состоит в том, чтобы в reviewLA содержались удаленные отзывы пользователей из документа.

Любая помощьбудет оценена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...