Я написал работающий искатель с помощью scrapy,
теперь я хочу контролировать это через Django webapp, то есть:
- Установите 1 или несколько
start_urls
- Установите 1 или несколько
allowed_domains
- Установить
settings
значения - Запуск паука
- Стоп/пауза/возобновление паука
- получить статистику во время работы
- получить некоторые статистические данные после завершения паука.
Сначала я подумал, что scrapyd был сделан для этого, но после прочтения документа кажется, что это более демона, способного управлять "упакованными пауками", иначе "яичниками"; и что все настройки (start_urls
, allowed_domains
, settings
) по-прежнему должны быть жестко закодированы в самом "лучечном яйце"; так что это не похоже на решение моего вопроса, если я не пропустил что-то.
Я также рассмотрел этот вопрос: Как указать URL-адрес для скрининга для сканирования?;
Но лучший ответ на предоставление множественных URL-адресов квалифицируется автором как "уродливый взлом", связанный с подпроцессом python и сложной обработкой оболочки, поэтому я не думаю, что решение можно найти здесь. Кроме того, он может работать для start_urls
, но он, похоже, не позволяет allowed_domains
или settings
.
Затем я взглянул на scrapy webservices:
Кажется, это хорошее решение для получения статистики. Тем не менее, он по-прежнему требует запуска паука, и нет подсказки для изменения settings
Есть несколько вопросов по этому вопросу, ни один из них не кажется удовлетворительным:
- using-one-scrapy-spider-for-several-websites Это кажется устаревшим, поскольку scrapy развивается много с 0.7
- creating-a-generic-scrapy-spider Нет принятого ответа, все еще обсуждающего настройки параметров оболочки.
Я знаю, что терапия используется в производственных средах; и такой инструмент, как scrapyd, показывает, что есть определенные способы справиться с этими требованиями (я не могу себе представить, что скребковые яйца scrapyd имеют дело с ними!)
Большое спасибо за вашу помощь.