Как я могу предоставить учетные данные API для Scrapy Cloud без публичного предоставления учетных данных? - PullRequest
0 голосов
/ 07 сентября 2018

Единственное, что я очень растерялся, - это определение правильной передачи учетных данных API в Scrapy Cloud и Scrapinghub для отправки проанализированных элементов в Google Cloud. В настоящее время я храню свои скрипты на Github и автоматически обновляю их до Scrapy Cloud. Это сделано для того, чтобы упростить обновление моих проектов, а также чтобы другие могли видеть прогресс моих проектов.

Тогда возникает вопрос о том, как правильно предоставить учетные данные API для проверки данных Scrapy для Google. Я не могу публично отображать учетные данные (ОЧЕНЬ плохая идея, которую я узнал). И я не верю, что смогу как вручную загрузить файл JSON в Scrapy Cloud, так и сохранить свой проект в Github. Я мог хранить свои проекты только на Scrapy, но это ограничивает сотрудничество в проекте.

Есть ли потенциальный обходной путь для этого? Кто-нибудь смог решить эту проблему?

Заранее спасибо!

Edit:

После прочтения неясной документации Google я смог решить эту проблему с помощью начальной справки, приведенной ниже. Процесс выглядит так:

  1. Создание набора учетных данных учетной записи службы в пользовательском интерфейсе Google Cloud
  2. Зайдите в Scrapinghub UI и создайте настройки в пауке для каждого пункт в полномочиях.
  3. Используйте функцию "settings.get", предоставляемую Scrapy, чтобы вытащить те учетные данные из вашего пользовательского интерфейса Scrapinghub.
  4. Создание объекта Credentials из модуля OAuth2.
  5. Используйте объект Credentials в качестве учетных данных для Pub / Sub PublisherClient.

Ссылка Github на то, как я решил проблему, находится здесь:

https://github.com/cmattheson6/bill_votes/blob/master/senate_votes/pipelines.py

1 Ответ

0 голосов
/ 07 сентября 2018

Как насчет использования Аргументов для вашего паука?

def __init__(self, api_credentials=None):

enter image description here

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