Следующая кнопка в скрапе - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно использовать оператор if внутри оператора if, который я уже должен определить, когда моя программа очистки нажимает следующую кнопку, чтобы я мог что-то сделать, как только это произойдет. Текущий оператор if просто определяет, есть ли на странице следующая кнопка. Но я не могу понять, как определить, когда будет нажата следующая кнопка.

            # Finds next page button
            priority = response.meta['priority']
            next_page = response.xpath('//a[contains(., "- Next>>")]/@href').get()
            # If it exists and there is a next page enter if statement
            if next_page is not None:
                # Go to next page
                yield response.follow(next_page, self.parse, priority=priority, meta={'priority': priority})

1 Ответ

1 голос
/ 14 июня 2019

Имейте флаг в ключе meta, чтобы определить, пришла ли эта ссылка после нажатия кнопки СЛЕДУЮЩАЯ

def parse(self, response):

    if response.meta.get('isNextClicked', False):
        #Next was clicked

    # Finds next page button
    priority = response.meta['priority']    

    next_page = response.xpath('//a[contains(., "- Next>>")]/@href').get()
    # If it exists and there is a next page enter if statement
    if next_page is not None:
        # Go to next page
        yield response.follow(next_page, self.parse, priority=priority, meta={'priority': priority, 'isNextClicked': True})
...