• 生活经历的意义,是为了引导你,而非定义你。

  • 外卖,购物,看电影,打车都可以领劵

  • 人生在世最重要的是独立支撑,在物质上独立支撑,在精神上也要独立支撑。在物质上依赖他人就无法自由呼吸,在精神上依赖他人就无法随心所欲。

  • 进了好大学也好,进了好公司也好,如果有活到老学到老的想法,那就有无限的可能性。失去好奇心的那一瞬间,人就死了。读书,不是为了考试,而是为了成为出色的大人。

  • 我常常想,人类得到切割时间的能力,确实堪称是最伟大的发明之一。因为只有这样,大家才不会混混噩噩一顿水地过下去。人,有了停顿的概念,才会有反省的机会。

  • 所有的改变都是一种深思熟虑过后的奇迹, 每瞬间奇迹都在发生。

  • 雨天听雨,调动五感,全身投入,感受那一瞬间。雪天赏雪,夏天感受暑热,冬天体悟刺骨的寒冷。日日是好日,原来是这个意思。

  • 受挫的时候,想到等待着自己的人,和信任自己的人,就绝不能迷失自己。我要一点一点重新来过,慢一些也没关系。我要重新开始。

  • 今天在松松博客的博文发表成功了 :mrgreen:  博文地址

如何使用 Python 访问 Google Search Console API

博客 James 3周前 (11-08) 21次浏览 已收录 0个评论 扫描二维码

Google Search Console 包含大量对技术 SEO 非常有用的信息。但是,使用前端界面可以执行的操作是有限的,并且提取分析所需的数据需要时间。但是,如果您改为通过 Google Search Console API 访问您需要的内容,那么您的生活就会变得更加轻松。

该 API 使您可以直接从 Python 中直接访问您需要的所有数据,因此您可以提取您需要的数据、构建自动化脚本、创建数据管道来操作数据、将其连接到其他来源,以及将数据移动到其他系统中. 这是它的完成方式。

创建服务帐号

要从 Google Search Console API 访问数据,您需要使用 Google API 控制台创建服务帐户并将 JSON 客户端密钥文件下载到您的计算机。这样做的过程有些复杂:

  1. 转到Google API Console > Credentials 并选择或创建一个项目。
  2. 单击创建凭据 > 服务帐户,填写表单,然后单击创建。
  3. 为您的服务帐户用户选择一个角色,即查看者,然后保存。
  4. 复制为服务帐户添加的电子邮件地址,即 xxx@xxxx.iam.gserviceaccount.com
  5. 创建一个 JSON 密钥并将其下载到您的机器上。
  6. 转到Google Search Console并选择您的资源。
  7. 单击设置 > 用户和权限 > 添加用户,然后输入服务帐户电子邮件。

安装软件包

from google.oauth2 import service_account
from googleapiclient.discovery import build
import requests
import json
import pandas as pd

为了使 Pandas 数据帧更易于阅读,您可能希望使用pd.set_option('max_colwidth', 150).

pd.set_option('max_colwidth', 150)

存储您的密钥路径

接下来,创建一个名为 key 的变量,并将路径添加到用于在用于 Google Search Console API 的服务帐户上对您进行身份验证的客户端机密 JSON 密钥文件。

key = 'google-search-console.json'

使用您的密钥创建 API 连接

为了处理连接,我们将创建一个基本函数,该函数将key和传递scope给 API 并返回一个可以用来运行查询的服务对象。这对于 Jupyter notebook 使用来说很好,但如果你想在生产中使用它,你需要包含一些错误处理功能。

def connect(key):
    """Create a connection to the Google Search Console API and return service object.
    
    Args:
        key (string): Google Search Console JSON client secrets path.
    
    Returns:
        service (object): Google Search Console service object.
    """
    
    scope = ['https://www.googleapis.com/auth/webmasters']
    credentials = service_account.Credentials.from_service_account_file(key, 
                                                                        scopes=scope)
    service = build(
        'webmasters',
        'v3',
        credentials=credentials
    )
    
    return service

创建一个函数来运行查询

接下来,我们将创建一个名为的函数query(),该函数接受我们经过身份验证的service对象、site_url标识我们要查询的 Search Console 属性,以及一个payload包含我们的 API 查询的字典。

我们将使用execute()在 API 上运行此查询,然后提取rows,重新格式化数据以使其整洁,并使用 将输出添加到 Pandas 数据帧from_dict()

def query(service, site_url, payload):
    """Run a query on the Google Search Console API and return a dataframe of results.
    
    Args:
        service (object): Service object from connect()
        site_url (string): URL of Google Search Console property
        payload (dict): API query payload dictionary
    
    Return:
        df (dataframe): Pandas dataframe containing requested data. 
    
    """
    
    response = service.searchanalytics().query(siteUrl=site_url, body=payload).execute()
    
    results = []
    
    for row in response['rows']:    
        data = {}
        
        for i in range(len(payload['dimensions'])):
            data[payload['dimensions'][i]] = row['keys'][i]

        data['clicks'] = row['clicks']
        data['impressions'] = row['impressions']
        data['ctr'] = round(row['ctr'] * 100, 2)
        data['position'] = round(row['position'], 2)        
        results.append(data)
    
    return pd.DataFrame.from_dict(results)

运行 Search Console API 查询

最后,我们可以将这些步骤放在一起。我们将通过我们的keytoconnect()来获取一个service对象。我们将创建一个简单的 API 查询payload字典,定义site_url我们要查询的属性,然后使用query(). 这将返回一个我们可以随意操作的 Pandas 数据帧。

service = connect(key)

payload = {
    'startDate': "2019-01-01",
    'endDate': "2019-12-31",
    'dimensions': ["page","device","query"],
    'rowLimit': 100,
    'startRow': 0
}

site_url = "http://flyandlure.org"

df = query(service, site_url, payload)
df.head()

老余博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何使用 Python 访问 Google Search Console API
喜欢 (2)
[老余博客]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址