详解用Python进行谷歌Search分析

  • Post category:Python
  1. 简介

谷歌搜索分析(Google Search Console)是一个免费的Google工具,可以让网站管理员检查他们的网站是否被Google发现、以及如何执行其搜索引擎策略。Python提供了许多库和工具,可以轻松地使用谷歌搜索分析,并且可以自定义各种报告、图表和结构化数据等。

  1. 步骤

2.1 创建项目

首先,需要将自己的网站添加到谷歌搜索控制台中,并获取到对应的访问令牌(access token)和客户端ID(client ID)。

2.2 安装所需库

在Python中,需要安装google-authgoogle-auth-oauthlibgoogle-auth-httplib2这些库,可以使用pip命令进行安装:

pip install google-auth google-auth-oauthlib google-auth-httplib2

2.3 连接到谷歌搜索分析

可以使用以下代码进行连接:

from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build

# 访问令牌和客户端ID,可以从谷歌搜索控制台获取
credentials = Credentials.from_authorized_user_info(info)

# 导入API,并创建服务对象
service = build('webmasters', 'v3', credentials=credentials)

2.4 获取数据

以下是获取基本统计数据的示例代码:

def get_basic_stats(service, site_url):
    stats = service.searchanalytics().query(
        siteUrl=site_url,
        body={
            'startDate': '2021-01-01',
            'endDate': '2021-06-01',
            'dimensions': ['date'],
            'metrics': ['clicks', 'impressions', 'ctr', 'position']
        }
    ).execute()
    return stats

在此示例中,获取了从2021年1月1日到2021年6月1日之间的基本统计数据,并按日期进行了分组。该函数返回一个字典对象,包含clicksimpressionsctrposition等指标的值。

另外,还可以使用searchanalytics().query_advanced方法,获取高级分析数据。下面是一个获取结果分页的示例:

response = service.searchanalytics().query_advanced(
    siteUrl=site,
    requestBody={
        'startDate': '2021-01-01',
        'endDate': '2021-06-01',
        'searchType': 'web',
        'dimensions': ['query', 'page'],
        'dimensionFilterGroups': [
            {
                'filters': [
                    {'dimension': 'country', 'operator': 'equals', 'expression': 'USA'}
                ]
            }
        ],
        'rowLimit': 10000
    }).execute()
if 'rows' in response:
    rows = response['rows']
    while 'nextPageToken' in response:
        response = service.searchanalytics().query_advanced(
            siteUrl=site,
            requestBody={
                'startDate': '2021-01-01',
                'endDate': '2021-06-01',
                'searchType': 'web',
                'dimensions': ['query', 'page'],
                'dimensionFilterGroups': [
                    {
                        'filters': [
                            {'dimension': 'country', 'operator': 'equals', 'expression': 'USA'}
                        ]
                    }
                ],
                'rowLimit': 10000,
                'startRow': response['rows'][0]['startIndex'] + response['rows'][0]['keys'][0]['startRow']
            }).execute()
        rows += response['rows']

在此示例中,通过添加startRow参数实现了分页功能,以处理超过10000行的数据。

  1. 结语

综上所述,使用Python进行谷歌搜索分析是非常容易的。在连接到谷歌搜索分析的过程中,需要进行身份验证,以使用搜索控制台中的数据。获取数据时,可以指定各种条件、维度和指标。