Как я могу использовать API консоли поиска Google из среды Google Collaboratory? - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу использовать API консоли поиска Google из среды Google Collaboratory.

Я попробовал этот код, но получил сообщение об ошибке "TypeError: ожидаемый объект str, bytes или os.PathLike, а не dict".

Я знаю, что возвращаемый тип из files.upload () не соответствует ожидаемому типу из ServiceAccountCredentials.from_json_keyfile_name (KEY_FILE_LOCATION, SCOPES).

Однако я не знаю, как это исправить .

Впервые я задаю вопрос в переполнении стека, и я новичок в программировании и английском языке sh, поэтому вы бы меня легко научили?

import pandas as pd

from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

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

from google.colab import files

uploaded = files.upload()

KEY_FILE_LOCATION = uploaded

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
webmasters = build('webmasters', 'v3', credentials=credentials)

url = '*********'

d_list = ['query', 'page']
start_date = '2019-12-01'
end_date = '2019-12-31'
row_limit = 5000

body = {
    'startDate': start_date,
    'endDate': end_date,
    'dimensions': d_list,
    'rowLimit': row_limit
}

response = webmasters.searchanalytics().query(siteUrl=url, body=body).execute()
df = pd.io.json.json_normalize(response['rows'])

for i, d in enumerate(d_list):
    df[d] = df['keys'].apply(lambda x: x[i])

df.drop(columns='keys', inplace=True)
df.to_csv('{}.csv'.format(start_date), index=False)

print(df)

1 Ответ

0 голосов
/ 28 февраля 2020

Я решил это. Сначала я загрузил Key_file в тот же каталог с этим программным файлом. Затем я подключил программу и учетную запись Google Drive путем «монтирования». Наконец, я получил абсолютный путь к json ключевому файлу.

import pandas as pd


from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

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

from google.colab import drive
drive.mount('/content/drive')

KEY_FILE_LOCATION = '/content/drive/My Drive/<path-to-json>'

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, scopes=SCOPES)
webmasters = build('webmasters', 'v3', credentials=credentials)

url = '*********'

d_list = ['query', 'page']
start_date = '2019-12-01'
end_date = '2019-12-31'
row_limit = 5000

body = {
    'startDate': start_date,
    'endDate': end_date,
    'dimensions': d_list,
    'rowLimit': row_limit
}

response = webmasters.searchanalytics().query(siteUrl=url, body=body).execute()
df = pd.io.json.json_normalize(response['rows'])

for i, d in enumerate(d_list):
    df[d] = df['keys'].apply(lambda x: x[i])

df.drop(columns='keys', inplace=True)
df.to_csv('{}.csv'.format(start_date), index=False)

print(df)
...