Как передать аргументы из Middleware в конвейеры - PullRequest
0 голосов
/ 01 сентября 2018

Мне нужно передать аргументы из Middleware: spider_opened() в конвейеры: close_spider() функции.

Я пишу собственный код, чтобы избежать удаления дублирующихся элементов. Я загружаю уже очищенные данные в модуль Download Middleware, затем проверяю, совпадают ли URL-адрес запроса и элементы DATE с теми, которые находятся в базе данных, и решаю, отбрасывать или обрабатывать запрос. Пока это хорошо работает, но в конце Паук получает только обновленные предметы.

Кроме тех, которые мне нужны, я должен заполнить все уже очищенные предметы. Для этой цели я написал модуль Custom CSV Writer в конвейерах, но не знаю, как передать базу данных, загруженную в модуль Middleware.

Вся идея состоит в том, чтобы:

  1. Загрузка базы данных является модулем промежуточного программного обеспечения

  2. Проверить, соответствуют ли значения URL и DATE базе данных (снова в промежуточном программном обеспечении)

    Если URL и DATE совпадают, отбросить запрос

    Если URL-адрес совпадает, но DATE не удаляет Элемент из базы данных и не выполняет запрос

    Если URL-адрес и ДАТА не совпадают, выполните запрос

  3. Затем из конвейеров я получил доступ к недавно очищенным элементам и могу сохранить их в файле CSV.

Единственное, что осталось, - это хранить неотъемлемые элементы из базы данных в промежуточном программном обеспечении, но я не знаю, как передать их в модуль конвейеров.

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