在本文中,我们将向您展示如何使用 Python 编程语言通过 API 从 Search Console 中提取数据。我们不会使用小脚本,而是会向您展示一种结构化的方法,使用 Cloud Functions 和一个小模板,帮助您在创纪录的时间内构建各种项目。
在 IKAUE,我们日常数字分析工作的关键环节之一是数据提取、转换和加载(ETL,即Extract、Transform 和 Load)。来自不同来源的海量数据帮助我们构建 科特迪瓦电话号码数据 各种带有图形的可视化仪表盘,使我们能够发现新的分析领域或衡量某些操作在业务层面的影响。
其中一个数据源是Search Console,它(如其产品页面所述)是一项免费服务(但有一个警告),提供有关 Google 如何抓取、索引和发布我们的网站的信息。
这些信息除了显示在相当清晰和实用的界面上之外,还可以通过两种不同的方式提取:通过可配置的自动导出,需要(在本例中)一个 Google Cloud 项目(与 BigQuery 中的数据存储相关的成本,这是我之前提到的细微差别)以及通过 Google 向我们提供的 API。
具体来说,正如我们之前提到的,本文将重点讲解如何使用 Cloud Functions 通过 API 执行此提取。但首先……
1. 我们对云功能了解多少?
提醒一下,无服务器代码执行环境。它允许我们开发函数并(几乎)立即部署它们,目前支持以下编程语言:.NET、Go、Java、Node.js、PHP、Python 和 Ruby。
它究竟是如何工作的?
当我们想要部署我们的函数时,Google 会对其进行编译,并且每次我们调用它时(使用 Google 向我们提供的一种机制),Cloud Functions 环境都会调用它,它会运行最长的时间然后终止。
Cloud Functions 允许我们配置我们的函数以使用一感谢丹尼斯给予他如此优质的生活 以 定数量的 RAM,使用定义数量的 CPU(如果函数非常小,则使用一小部分)调整处理能力、并发级别、安全级别、触发器类型(如何调用我们的函数)和一些其他参数。
这使我们能够创建一系列非常灵活的功能来适应我们的需求,而不会太复杂。
我们能做什么?
使用 Cloud Functions 可以开发各种类型的函数(或应用程序),从微服务到更复杂的应用程序。Google 提供了各种各样的第三方库,以补充我们选择的开发编程语言。微服务?当然可以。物联网?当然可以。数据提取、转换和/或加载?没问题!
虽然启动非常大的功能并不完全实用(因为云功能背后的主要思想是重复启动相对较小的进程),但您可以做的事情并没有太多的限制。
它有什么限制吗?
虽然我们提到过,Cloud Functions 的功能并没有太多限制,但一个函数的最长执行时间为 540 秒(9 分钟)。如果任何进程的执行时间超过 9 分钟,Cloud Functions 环境都会终止该函数的执行,无论该函数是否已完成。
这要花多少钱?
我们必须牢记 Google Cloud 的理念:按实际使用量付费。电话带领 根据我们创建函数时使用的配置选项,成本会有所不同(可用 RAM 或 CPU 数量越多,以及其他因素的影响,成本就越高)。
此外,我们必须添加我们使用的服务的成本(如果有),无论是来自 Google Cloud 还是外部提供商(在我们的例子中,我们将使用 BigQuery 来存储数据,使用 Cloud Functions 来执行,并使用 Search Console API)。
话虽如此,让我们进入最有趣的部分:
2. 我们的第一个功能是使用云功能。
使用 Cloud Functions 创建函数非常简单。操作如下:使用位于屏幕左上角的汉堡菜单,然后选择标有Cloud Functions 的子菜单。
接下来,我们点击标有CREATE FUNCTION 的按钮。
在各种基本配置选项中,我们首先要做的是指定函数的标识名称。我们还可以指定该函数将在其中运行的 Google Cloud 区域(默认情况下,它通常部署在美国)以及它将在其中运行的环境(默认情况下以及在本文撰写时,它作为第二代函数运行)。
接下来,我们需要为函数定义触发器类型。默认触发器是 HTTPS (如果我们希望函数可以通过 URL 访问),但我们也可以选择其他触发器,例如 Pub/Sub、Firestore 或其他。我们可以复制下面的 URL,因为它是我们将用来调用函数的 URL。
在本例中,我们将保留默认选项 (HTTPS),并选择标记为“允许未经身份验证的调用”的选项。值得注意的是,应谨慎选择此选项,因为它非常适合作为演示,向您展示如何与函数交互,并且当您想要实现某种类型的可公开访问的 API 时,它是正确的选择。但是,根据您的需求和函数的运行环境,您可能对第二个选项(需要身份验证)更感兴趣,因为它可以限制其范围。
一旦我们选择了触发器类型,我们将在以下部分调整我们的函数将使用的内存量:
由于这是一个简单的函数,我们将选择最小可用内存量(128 MB)。我们不会修改其余选项。
如果我们点击标有NEXT的按钮,我们就可以为我们的功能配置代码。
我们要做的第一件事是选择要使用的运行时环境。在本例中,我们使用第一个下拉列表选择Python(撰写本文时可用的最新版本是3.12)。
我们有三种方式来指定函数代码:使用内联编辑器(我们当前使用的界面)、从电脑上传.zip文件,或者从云存储执行相同操作(上传.zip文件)。在本例中,我们保留默认选项(使用内联编辑器)。
最后一个需要注意的选项(本例中不会更改)是入口点名称。入口点是指我们的函数被调用时将执行的函数或代码片段。在本例中,由于选择了 HTTPS 作为触发条件,入口点的名称大致为hello_http。我们保留原样。
此时,我们要做的就是部署我们的函数。为此,我们必须点击“部署”按钮。Cloud Functions 环境现在将打包我们的函数。完成后,为了测试它,我们只需访问触发器 URL。我们应该看到以下内容: