以下是使用Python进行谷歌搜索分析的完整攻略。
安装Python包
首先在命令行中使用pip安装三个包:
pip install google-api-python-client google_auth google-auth-oauthlib google-auth-httplib2
创建OAuth令牌
谷歌API使用OAuth 2.0协议进行身份验证。为此,需要使用您的谷歌帐户登录开发者控制台,然后按照以下步骤操作:
- 单击“Create Project”(创建项目)按钮。
- 输入项目名称并单击“Create”(创建)按钮。
- 在右上角的搜索框中输入“Google Search Console API”,然后选择该API。
- 单击“Enable”(启用)按钮。
- 然后创建授权凭据。在“API和服务” > “凭据”页面中,单击“Create Credentials”(创建凭据)按钮,并选择“OAuth客户端ID”选项。
- 在“应用程序类型”下选择“其他”,输入名称并单击“创建”按钮。
- 在下一屏幕中,您将看到您的客户端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技术站