详解用Python进行谷歌Search分析

yizhihongxing

以下是使用Python进行谷歌搜索分析的完整攻略。

安装Python包

首先在命令行中使用pip安装三个包:

pip install google-api-python-client google_auth google-auth-oauthlib google-auth-httplib2

创建OAuth令牌

谷歌API使用OAuth 2.0协议进行身份验证。为此,需要使用您的谷歌帐户登录开发者控制台,然后按照以下步骤操作:

  1. 单击“Create Project”(创建项目)按钮。
  2. 输入项目名称并单击“Create”(创建)按钮。
  3. 在右上角的搜索框中输入“Google Search Console API”,然后选择该API。
  4. 单击“Enable”(启用)按钮。
  5. 然后创建授权凭据。在“API和服务” > “凭据”页面中,单击“Create Credentials”(创建凭据)按钮,并选择“OAuth客户端ID”选项。
  6. 在“应用程序类型”下选择“其他”,输入名称并单击“创建”按钮。
  7. 在下一屏幕中,您将看到您的客户端ID和秘密密钥。单击“下载”按钮以下载JSON凭据文件。

连接到Google Search Console API

根据指南的“访问API”部分,使用OAuth 2.0令牌连接到Google Search Console API,并授权代码访问。

from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']

flow = InstalledAppFlow.from_client_secrets_file(
    'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)

检索谷歌搜索分析数据

使用Google Search Console API检索与您的网站相关的搜索分析数据。这些数据可以按日期范围、国家/地区和搜索类别进行过滤。

以下代码是在日期范围内检索远程文本的示例:

from googleapiclient.discovery import build

webmasters_service = build('webmasters', 'v3', credentials=creds)

request = {
  'startDate': '2020-01-01',
  'endDate': '2020-01-31',
  'dimensions': ['query']
}

response = webmasters_service.searchanalytics().query(
    siteUrl='https://www.example.com', body=request).execute()

print(response)

示例

以下是一个更完整的示例,它检索了过去7天内与一个URL相关的最佳查询和页面,并将其显示为数据帧。

from datetime import datetime, timedelta
from googleapiclient.discovery import build
import pandas as pd

SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
VIEW_ID = 'XXXXX' # 输入search console上的自己网站view ID,找方法:https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/how-tos-authentication

def main():

    creds = None

    # 从credentials.json中读取OAuth 2.0令牌,以连接到Google Search Console API。
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    creds = flow.run_local_server(port=0)

    # 使用Google API构建搜索主控服务对象
    service = build('webmasters', 'v3', credentials=creds)

    # 定义日期范围
    yesterday = datetime.now() - timedelta(days=1)
    week_ago = yesterday - timedelta(days=7)
    today_formatted = datetime.now().strftime('%Y-%m-%d')
    week_ago_formatted = week_ago.strftime('%Y-%m-%d')
    date_range = {
        'startDate': week_ago_formatted,
        'endDate': today_formatted
    }

    # 按查询检索数据
    query_request = {
        'startDate': date_range['startDate'],
        'endDate': date_range['endDate'],
        'dimensions': ['query', 'page'],
        'rowLimit': 25
    }
    query_response = service.searchanalytics().query(siteUrl='https://www.example.com', body=query_request).execute()
    query_data = query_response['rows'] if 'rows' in query_response else []

    # 组装成DataFrame 
    rows = []
    for row in query_data:
        rows.append({
          'query': row['keys'][0].lower(),
          'page': row['keys'][1],
          'clicks': int(row['clicks']),
          'ctr': round((row['ctr']*100), 2),
          'impressions': int(row['impressions']),
          'position': round(float(row['position']), 2)
        })
    df = pd.DataFrame(rows)

    # 显示
    print('Top queries:')
    print(df.sort_values(by=['clicks'], ascending=False).head(10))
    print('\n')
    print('Top pages:')
    print(df.sort_values(by=['impressions'], ascending=False).head(10))


if __name__ == '__main__':
    main()

希望这个攻略可以帮助你开始使用Python进行谷歌搜索分析。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解用Python进行谷歌Search分析 - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • 给Python学习者的文件读写指南(含基础与进阶)

    首先需要明确的是,文件读写在Python中是非常常见的操作之一,因此学习者必须掌握这一基础知识点。以下是给Python学习者的文件读写指南,其中包括了基础的文件读写和一些进阶操作。 基础知识 文件打开与关闭 在Python中,打开一个文件需要使用open()函数,并传入文件的路径和打开方式(只读、只写、追加等)。例如: f = open("file…

    python 2023年5月13日
    00
  • python实现得到一个给定类的虚函数

    确实有些晦涩难懂,但是,我们可以尝试将其分解为几个点来阐述,这样讲解起来应该会更清晰: 虚函数是什么? 如何在 Python 中实现一个类似于虚函数的概念? 如何得到一个给定类的虚函数? 下面我将重点解释这三个问题: 1. 虚函数是什么? 在 C++ 中,虚函数是一种特殊的成员函数,它可以在派生类中被重写,允许通过基类指针或引用来调用,在运行时根据实际类型来…

    python 2023年6月5日
    00
  • 用python实现文件备份

    用Python实现文件备份攻略 在实际工作中,我们经常会需要对重要的文件进行备份,以免数据丢失等问题发生。Python作为一种高效、易学且功能强大的编程语言,可以很方便地实现文件备份功能。 以下是详细的实现步骤: 1. 安装Python 在开始之前,需要确保本地已经安装了Python。如果没有安装,可以从Python官网(https://www.python…

    python 2023年5月13日
    00
  • python获取文件路径、文件名、后缀名的实例

    这里给出“Python获取文件路径、文件名、后缀名的实例”的完整攻略: 1. 获取文件路径 在Python中,获取文件路径的方式有很多种,这里介绍其中比较常用和简单的几种方法。 方法一:使用os模块中的dirname函数 os模块是Python的标准库,其中包含了很多操作系统相关的函数,例如获取文件路径的dirname函数。它的使用方法很简单,只需要将文件的…

    python 2023年6月5日
    00
  • Jupyter Notebook内使用argparse报错的解决方案

    针对Jupyter Notebook中使用argparse报错的问题,可以采用以下的解决方案: 问题描述 在Jupyter Notebook中使用argparse时,可能会出现以下类似的报错信息: usage: ipykernel_launcher.py [-h] [–input INPUT] [–output OUTPUT] ipykernel_lau…

    python 2023年6月3日
    00
  • 关于爬虫中scrapy.Request的更多参数用法

    在Scrapy中,我们可以使用scrapy.Request对象发起HTTP请求。除了URL参数外,scrapy.Request对象还支持许多其他参数,以帮助我们更好地控制HTTP请求。本文将介绍scrapy.Request对象的更多参数用法,并提供两个示例。 1. 更多参数用法 除了URL参数外,scrapy.Request对象还支持以下参数: callba…

    python 2023年5月15日
    00
  • 基于Python实现简单学生管理系统

    完整攻略:基于Python实现简单学生管理系统 一、需求分析 本学生管理系统需要实现以下功能: 1.增加学生信息:输入学生姓名、学号、性别、年龄,将这些信息存入数据库。 2.查询学生信息:根据姓名、学号、年龄等关键字,在数据库中查询符合条件的学生信息,将结果返回。 3.修改学生信息:根据学号或姓名查询到学生信息,进行信息修改操作,将修改后的结果更新到数据库中…

    python 2023年5月19日
    00
  • 使用Python获取当前工作目录和执行命令的位置

    想要使用Python获取当前工作目录和执行命令的位置,我们需要使用os模块中的函数。os模块是Python标准库中提供的,用于提供与操作系统交互的功能。下面是具体的步骤: 获取当前工作目录 使用os模块中的getcwd()函数可以获取当前工作目录,即程序当前所在的目录。示例代码如下: import os # 获取当前工作目录 current_dir = os…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部