Один Scrapy-проект против нескольких проектовPython

Программы на Python
Anonymous
Один Scrapy-проект против нескольких проектов

Сообщение Anonymous »

У меня возникла дилемма: как хранить всех моих пауков. Эти пауки будут передаваться в Apache NiFi с помощью вызова командной строки и элементов, считываемых из стандартного ввода. Я также планирую сделать так, чтобы часть этих пауков возвращала результаты по одному элементу с помощью Scrapyrt на отдельном веб-сервере. Мне нужно будет создавать пауков для множества разных проектов с разными моделями предметов. Все они будут иметь схожие настройки (например, использовать один и тот же прокси).

Мой вопрос: как лучше всего структурировать мои Scrapy-проекты?
  • Поместите всех пауков в один репозиторий. Обеспечивает простой способ создания базовых классов для загрузчиков элементов и конвейеров элементов. li>
    Группируйте пауков для каждого проекта, над которым я работаю, в отдельные репозитории. Преимущество этого заключается в том, что элементы могут быть центром каждого проекта и не становиться слишком большими. Невозможно поделиться общим кодом, настройками, мониторами-пауками (пауками) и базовыми классами. Это кажется самым чистым, хотя есть некоторые дублирования.
  • Упаковывайте только тех пауков, которые я планирую использовать не в реальном времени, в репозитории NiFi, а в другом репозитории - в реальном времени.< /strong> Имеет то преимущество, что пауки сохраняются в проектах, которые на самом деле будут их использовать, но при этом централизуется/сворачивается, какие пауки используются в каких проектах.
Похоже, что правильный ответ — №2. Пауки, связанные с конкретной программой, должны находиться в своем собственном проекте Scrapy, точно так же, как когда вы создаете веб-сервис для проекта A, вы не говорите: «О, я могу просто добавить все конечные точки моего сервиса для проекта B в один и тот же сервис, потому что это где будут находиться все мои сервисы, хотя некоторые настройки могут дублироваться. Возможно, некоторые из общих кодов/классов можно было бы использовать в отдельном пакете.

Что вы думаете? Как вы структурируете свои Scrapy-проекты, чтобы максимизировать возможность повторного использования? Где вы проводите грань между одним и тем же проектом и отдельным проектом? Это основано на вашей модели объекта или источнике данных?

Подробнее здесь: https://stackoverflow.com/questions/578 ... e-projects

Вернуться в «Python»