Как создать цикл в scrapy response.следовать?

#python #scrapy

#python #scrapy

Вопрос:

Я очищаю веб-сайт Dmoz. И я очищаю каждую страницу, но я не хочу писать response.follow() каждый раз. Вместо этого я хочу создать цикл. Как сделать так, чтобы я просто писал page_name и function_name вместо того, чтобы писать целую строку кода снова и снова.

     yield response.follow(self.about_page, self.parse_about, meta={'items': items})
    yield response.follow(self.editor, self.parse_editor, meta={'items': items})
    yield response.follow(self.suggestion, self.suggest_site, meta={'items':items})
    yield response.follow(self.help_page, self.parse_help, meta={'items':items})
  

Ответ №1:

Вы имеете в виду форматирование вашего кода? Попробуйте:

 dct = [
    (self.about_page, self.parse_about),
    (self.editor, self.parse_editor),
    (self.suggestion, self.suggest_site),
    (self.help_page, self.parse_help),
]
for page, callback in dct:
    yield response.follow(page, callback, meta={'items': items})
  

Комментарии:

1. Спасибо. У меня есть еще одна проблема, которую вы могли бы решить.

2. Извините, я не знал. Теперь я закончил. Но у меня есть вопрос относительно другой проблемы