# для получения токена заводим приложение на странице https://oauth.yandex.ru/ # берем ID приложения и подставляем в ссылку https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения> # на экране покажется отладочный токен, который в этом скрипте token
Содержание
Что потребуется
- Список номеров счетчиков
- Токен API метрики
Плюсы подхода
- Позволяет выгрузить большое количество ключей
- Обходит ограничение в 100.000 запросов.
Функция для выгрузки всех страниц входа
def get_stata_url (site, date1, date2, limit, offset):
API_URL = 'https://api-metrika.yandex.ru/stat/v1/data'
params = {
'date1': startDate,
'date2': endDate,
'id': site,
'metrics': 'ym:s:visits',
'dimensions': 'ym:s:startURL', #,ym:s:month
'filters': "ym:s:startURLDomain=='site.ru' AND ym:s:trafficSourceName=='Переходы из поисковых систем'",
'accuracy': 'full',
'limit': limit,
'offset': offset,
}
r = requests.get(API_URL, params = params, headers={'Authorization':token}, timeout=40)
r = r.json()
return r
Проходим в цикле и выгружаем страницы
offset=1 # начинаем забирать данные с первой строки
Flag = False # значение Flag=True будет означать выход из цикла выгрузки одного проекта
while Flag==False:
print('Starting line ' + str(offset))
sleep(random.randint(1,3))
data = get_stata_url (author, startDate, endDate, limit, offset)
try:
if len(data['data']) != 0:
for line in data['data']:
url = line['dimensions'][0]['name']
visits = line['metrics'][0]
with open('visits_all_page.csv' , 'a') as file:
file.write(f'{url}\t{visits}\n')
offset += limit
sleep(10)
else:
break
except Exception as e:
print(e, type(e))
Flag = True
print ('Данных нет')
#API #Яндекс #Яндекс Метрика