Как передать дополнительные аргументы объекту сервиса Google Pagespeed API

1

Я использую API-интерфейс Google Pagespeed v4 для извлечения показателей Pagespeed для большого количества URL-адресов. Я хочу протестировать как настольные, так и мобильные устройства с помощью strategy аргументов в моем вызове Pagespeed. Это возможно в общем вызове API, но я не могу найти способ передать эти аргументы в пакетном вызове.

Минимальный рабочий пример:

from apiclient.discovery import build
import requests

#define Google API key and API call
google_api_key = "MyKey"
#build service object to call PageSpeed, version 4, with MyKey
ps_service = build('pagespeedonline', 'v4', developerKey = google_api_key)

list_of_urls = [a list of several URLs]

#define function; make list of URLs with column for PageSpeed score
def list_websites(request_id, response, exception):
    if exception is not None:
        print("This is an exception: " + str(exception) + " " + request_id)
    else:
        score = response['ruleGroups']['SPEED']['score']
        print(score)

#create URL batch
ps_batch = ps_service.new_batch_http_request(callback = list_websites)
service_list = []

for url in list_of_urls:
    service_list.append(ps_service.pagespeedapi().runpagespeed(url = url))

for req in service_list:
    ps_batch.add(req)

#execute API call by batch
ps_batch.execute()

Хотя этот метод отлично подходит для выполнения пакетных запросов к API, по умолчанию он вычисляет оценку скорости на основе представления на рабочем столе указанных URL-адресов (стратегия анализа настроена на рабочий стол), тогда как я также хотел бы получить оценку для пакетный запрос, в котором стратегия установлена на мобильный, чтобы получить оценку на основе мобильного представления URL-адресов.

Мой вопрос: как добавить дополнительный аргумент функции build(), в которой я могу провести различие между мобильным и настольным компьютерами?

Теги:
google-api
pagespeed

1 ответ

1

Как это:

for url in list_of_urls:
    service_list.append(ps_service.pagespeedapi().runpagespeed(url = url, strategy='mobile'))

Каждый параметр, используемый Google, может быть отправлен таким образом

  • 1
    Спасибо! Отлично работает!
  • 0
    Пожалуйста, отметьте мой ответ как правильный, ткс.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню