首页 > 解决方案 > 如何在不公开提供凭据的情况下向 Scrapy Cloud 提供 API 凭据?

问题描述

我非常迷茫的一个地方是确定如何正确地向 Scrapy Cloud 和 Scrapinghub 提供 API 凭据,以便将解析的项目发送到 Google Cloud。我目前将我的脚本存储在 Github 上并将其自动更新到 Scrapy Cloud。这是为了更容易更新我的项目,也让其他人看到我的项目进度。

然后出现了如何正确提供 API 凭据以验证 Google 的 Scrapy 数据的问题。我不能公开显示凭据(我学到的非常糟糕的主意)。而且我不相信我可以手动将 JSON 文件上传到 Scrapy Cloud 并将我的项目存储在 Github 中。我只能将我的项目存储在 Scrapy 上,但这限制了项目上的协作。

是否有潜在的解决方法?有没有人能够解决这个问题?

提前致谢!

编辑:

在阅读了一些晦涩难懂的 Google 文档后,我能够通过以下初步帮助解决该问题。该过程如下所示:

  1. 在 Google Cloud UI 中创建一组服务帐号凭据
  2. 进入 Scrapinghub UI 并在爬虫中为凭据中的每个项目创建一个设置。
  3. 使用 Scrapy 提供的“settings.get”功能从您的 Scrapinghub UI 中提取这些凭据。
  4. 从 OAuth2 模块构建一个 Credentials 对象。
  5. 使用 Credentials 对象作为 Pub/Sub PublisherClient 的凭据。

我如何解决问题的 Github 链接在这里:

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

标签: pythonscrapy

解决方案


为你的蜘蛛使用 Arguments 怎么样?

def __init__(self, api_credentials=None):

在此处输入图像描述


推荐阅读