Использование Scrapyd-Client для развертывания распределенных сканеров

задняя часть Nginx рептилия Scrapy

Есть готовый инструмент для завершения процесса развертывания, он называется Scrapyd-Client. В этом разделе кратко рассказывается, как развертывать проекты Scrapy с помощью Scrapyd-Client.

1. Подготовка

Убедитесь, что Scrapyd-Client установлен правильно.

Во-вторых, функция Scrapyd-Client

Чтобы облегчить развертывание проектов Scrapy, Scrapyd-Client предоставляет следующие две функции.

  • Упакуйте проект в файл Egg.

  • Разверните упакованный файл Egg в Scrapyd через интерфейс addversion.json.

Scrapyd-Client помогает нам реализовать все развертывание. Нам не нужно заботиться о том, как создается файл яйца, и нам не нужно читать файл яйца и запрашивать интерфейс для его загрузки. Нам нужно только выполнить команду для развертывание одним щелчком мыши.

3. Развертывание Scrapyd-клиента

Чтобы развернуть проект Scrapy, нам сначала нужно изменить файл конфигурации проекта. Например, в проекте сканера Scrapy Weibo, написанном ранее, в первом слое проекта будет файл scrapy.cfg, и его содержимое будет следующим:

[settings]
default = weibo.settings

[deploy]
#url = http://localhost:6800/
project = weibo

Здесь нужно настроитьdeployчасть. Например, если мы развернем проект на Scrapyd по адресу 120.27.34.25, изменения будут следующими:

[deploy]
url = http://120.27.34.25:6800/
project = weibo

Таким образом, мы выполним следующую команду по пути, где находится файл scrapy.cfg:

scrapyd-deploy

Результаты приведены ниже:

Packing version 1501682277
Deploying to project "weibo" in http://120.27.34.25:6800/addversion.json
Server response (200):
{"status": "ok", "spiders": 1, "node_name": "datacrawl-vm", "project": "weibo", "version": "1501682277"}

Возвращенный результат указывает на то, что развертывание прошло успешно.

Версия проекта по умолчанию соответствует текущей метке времени. Мы также можем указать версию проекта черезversionПараметры можно передавать. Например:

scrapyd-deploy --version 201707131455

Стоит отметить, что в версии Python 3 Scrapyd 1.2.0 номера версий не могут быть указаны в виде буквенно-цифровых строк, они должны быть чистыми числами, иначе возникнет ошибка.

Если есть несколько хостов, мы можем настроить псевдонимы каждого хоста и изменить файл конфигурации на:

[deploy:vm1]
url = http://120.27.34.24:6800/
project = weibo

[deploy:vm2]
url = http://139.217.26.30:6800/
project = weibo

Здесь несколько хостов настроены единообразно, один хост соответствует набору конфигураций.deployПросто добавьте псевдоним хоста. Если мы хотим развернуть проект на хосте vm2 с IP 139.217.26.30, нам просто нужно выполнить следующую команду:

scrapyd-deploy vm2

Таким образом, нам нужно только настроить адрес Scrapyd каждого хоста в файле scrapy.cfg, а затем вызвать команду scrapyd-deploy и добавить имя хоста для развертывания.

Если Scrapyd установил ограничения доступа, мы можем добавить конфигурацию имени пользователя и пароля в файл конфигурации и изменить порт на порт прокси-сервера Nginx. Например, в главе 1 мы использовали 6801, поэтому здесь нам нужно изменить его на 6801 и изменить следующим образом:

[deploy:vm1]
url = http://120.27.34.24:6801/
project = weibo
username = admin
password = admin

[deploy:vm2]
url = http://139.217.26.30:6801/
project = weibo
username = germey
password = germey

присоединившисьusernameа такжеpasswordполе, мы можем автоматически выполнить проверку подлинности во время развертывания, а затем успешно реализовать развертывание.

4. Вывод

В этом разделе представлен процесс использования Scrapyd-Client для простого развертывания проектов в Scrapyd.С ним развертывание больше не является проблемой.


Этот ресурс был впервые опубликован в личном блоге Цуй Цинцай Цзин Ми:Практическое руководство по разработке веб-краулера на Python3 | Цзин Ми

Если вы хотите узнать больше информации о поисковых роботах, обратите внимание на мой личный публичный аккаунт WeChat: Coder of Attack.

WeChat.QQ.com/Day/5 Это радость VE Z…(автоматическое распознавание QR-кода)