Индексирование сайтов с помощью Яндекс Вебмастер API на Python
Содержание:
Как использовать код из статьи
Я размещу код на Гитхабе в формате Jupyter Notebook – думаю, что так нагляднее.
Установите питон и сборку библиотек Anaconda.
Скачайте папку с Гитхаба. В ней будет:
файл yandex_webmaster_indexing.ipynb с кодом и комментариями,
таблица megaposm.xlsx, которая используется в качестве примера в первом скрипте,
папка result c вложенными отчетами, которые получаются в результате работы скриптов для получения страниц из поисковой базы Яндекса и дальнейшего сопоставления.
Регистрация приложения
Для работы необходимо зарегистрировать приложение и получить токен, который будет использоваться для всех сервисов Яндекса, с которыми вы будет взаимодействовать через программный интерфейс.
1. Перейти по ссылке https://oauth.yandex.ru/client/new.
2. Создать название, выбрать «Веб-сервисы», нажать ссылку «Подставить URL для разработки»:
3. Отметить данные, которые нужны – ВебМастер и Яндекс Метрика:
4. Нажать «Создать приложение».
5. Скопировать Client ID:
6. Подставить Client ID в ссылку https://oauth.yandex.ru/authorize?response_type=token&client_id=Client ID Произойдет редирект на страницу с токеном.
В ссылке указано время жизни токена в секундах – 180 дней:
7. Скопировать токен и использовать в своем коде.
8. Скопировать host проекта и использовать в коде:
Отправка списка страниц на индексирование в Яндекс Вебмастер
Импорт библиотек
import json
import requests
import pandas as pd
Настройки
TOKEN = 'y0_AgABCAAZqca9AAaElQAAAADKLs4Yq_tVuPHCZOKIQLy3rAYljzWccks'
User id
USERID_URL = 'https://api.webmaster.yandex.net/v4/user'
Отправка на переобход
RECRAWL_URL_TEMPLATE = 'https://api.webmaster.yandex.net/v4/user/{}/hosts/{}/recrawl/queue'Документация https://yandex.ru/dev/webmaster/doc/dg/reference/host-recrawl-post.html
Параметры проекта
host = 'https:megaposm.com:443'
project_name = 'megaposm'
Загрузка URL для индексирования
Файл в формате xlsx с названием поля «urls»:
table_with_urls_for_recrawl = pd.read_excel(f'{project_name}.xlsx')Отправка на индексирование
Авторизация
def get_auth_headers():
return {'Authorization': f'OAuth {TOKEN}'}
Получение user_id Яндекс Вебмастера
def get_user_id():
r = requests.get(USERID_URL, headers=get_auth_headers())
user_id = json.loads(r.text)['user_id']
return user_id
Отправка на индексирование
Функция принимает множество (set) url для отправки,
перебирает каждый url и отправляет его на переобход, пока будет получен ответ НЕ 202,
возвращает set отправленных url.
def send_urls_to_yandex_for_recrawl(data, user_id, host):
sent_urls_for_recrawl_set = set()
for url in data:
yandex_webmaster_recrawl_url = RECRAWL_URL_TEMPLATE.format(user_id, host)
url_for_recrawl = {'url': f'{url}'}
r = requests.post(yandex_webmaster_recrawl_url,
headers = get_auth_headers(),
json = url_for_recrawl
)
if r.status_code != 202:
break
sent_urls_for_recrawl_set.add(url)
sent_urls_set_len = len(sent_urls_for_recrawl_set)
print(json.loads(r.text))
print('На переобход отправлено:', sent_urls_set_len)
return sent_urls_for_recrawl_set
Удаление из списка и экспорт
Функция принимает set с со всеми адресами из загруженной таблицы и set отправленных url,
Из загруженной таблицы удаляются url, которые были отправлены.
Это нужно для того, чтобы в следующий раз, когда обновится квота, эти же страницы не оправлялись на переобход.
Экспорт
def export_data_to_excel(data):
project_report = pd.ExcelWriter(f'{project_name}.xlsx', engine='xlsxwriter')
data.to_excel(project_report, index=False)
project_report.save()
Удаление и экспорт
def delete_sent_urls_and_export_new_table(main_urls_set, sent_urls_for_recrawl_set):
main_urls_set_without_sent_urls = main_urls_set - sent_urls_for_recrawl_set
rest_urls_list = list(main_urls_set_without_sent_urls)
data = pd.DataFrame({'urls': rest_urls_list})
export_data_to_excel(data)
Главная функция
Принимает датафрейм, который был загружен в начале,
отправляет на переобход,
удаляет из общего списка отправленные url и экспортирует датафрейм.
def main_send_pages_to_yandex_for_recrawl(data):
user_id = get_user_id()
main_urls_set = set(data['urls'].to_list())
sent_urls_for_recrawl_set = send_urls_to_yandex_for_recrawl(main_urls_set, user_id, host)
delete_sent_urls_and_export_new_table(main_urls_set, sent_urls_for_recrawl_set)
Запуск
main_send_pages_to_yandex_for_recrawl(table_with_urls_for_recrawl)
Получение списка проиндексированных страниц
Импорт библиотек
import json
import requests
import os
from datetime import datetime
from bs4 import BeautifulSoup
import pandas as pd
Настройки
TOKEN = 'y0_AgABCAAZqca9AAaElQAAAADKLs4Yq_tVuPHCZOKIQLy3rAYljzWccks'
User id
USERID_URL = 'https://api.webmaster.yandex.net/v4/user'
Получение статистики по проекту
HOST_STAT_URL_TEMPLATE = 'https://api.webmaster.yandex.net/v4/user/{}/hosts/{}/summary'Документация https://yandex.ru/dev/webmaster/doc/dg/reference/host-id-summary.
html.
Получение списка url в поисковой базе
INSEARCH_URL_TEMPLATE = 'https://api.webmaster.yandex.net/v4/user/{}/hosts/{}/search-urls/in-search/samples'Документация https://yandex.ru/dev/webmaster/doc/dg/reference/hosts-indexing-insearch-samples.html#hosts-indexing-insearch-samples.
Для получения списка страниц необходимо указать количество страниц, получаемое за одну итерацию, максимально можно указать 100.
YANDEX_PER_REQUEST_PAGE_LIMIT = 100
Параметры проекта
host = 'https:megaposm.com:443'
project_name = 'megaposm'
sitemap_path = 'https://megaposm.com/index.php?route=extension/feed/google_sitemap'
Директория для визуального отчета
YANDEX_VISUAL_REPORTS_DIR = 'results/visual_reports/yandex'
Директория для файлов со списком url на переобход
YANDEX_RECRAWL_BASES_DIR = 'results/recrawl_bases/yandex'
Получение списка страниц
Авторизация
def get_auth_headers():
return {'Authorization': f'OAuth {TOKEN}'}
Получение user_id Яндекс Вебмастера
def get_user_id():
r = requests.get(USERID_URL, headers=get_auth_headers())
user_id = json.loads(r.text)['user_id']
return user_id
Получение URL из поисковой базы
Функция принимает user id и хост,
получает число проиндексированных страниц — indexed_pages_quantity,
указаны параметры offset — смещение списка, т.е. с какой строки в списке будут получены url и limit — сколько страниц будет получено за один шаг — ранее был указан этот параметр в YANDEX_PER_REQUEST_PAGE_LIMIT,
запускается цикл while, который работает пока offser меньше числа проиндексированных страниц — indexed_pages_quantity,
запускается генератор множеств (set), в котороый добавляются полученные url,
полученный set с адресами объединяется с общим множеством indexed_pages,
к offset прибавляется число полученных url YANDEX_PER_REQUEST_PAGE_LIMIT,
функция возвращает множество indexed_pages.
def yandex_get_indexed_pages(user_id, host):
host_stat_url = HOST_STAT_URL_TEMPLATE.format(user_id, host)
insearch_url = INSEARCH_URL_TEMPLATE.format(user_id, host)
r = requests.get(host_stat_url, headers=get_auth_headers())
indexed_pages_quantity = json.loads(r.text)['searchable_pages_count']
print(f'В поисковой базе содержится {indexed_pages_quantity} страниц',)
indexed_pages = set()
params = {'offset': 0, 'limit': YANDEX_PER_REQUEST_PAGE_LIMIT}
while params['offset'] < indexed_pages_quantity:
r = requests.get(insearch_url, headers=get_auth_headers(), params=params)
current_urls = {element['url'] for element in json.loads(r.text)['samples']}
indexed_pages = indexed_pages.union(current_urls)
params['offset'] += YANDEX_PER_REQUEST_PAGE_LIMIT
return indexed_pages
Отмечу, что Яндекс Вебмастер предоставляет только 50 000 строк с url, которые хранятся в его базе.
Если на сайте больше страниц, то дальнейшее сопоставление даст некорректные результаты.
Сопоставление полученных url из Вебмастера с актуальными адресами на сайте
Функция yandex_get_indexed_pages возвращает
Актуальный список url вы можете получить при парсинге краулером, например Comparser. Затем загрузите таблицу, например с названием поля ‘urls’, где будут перечислены адреса:
parsed_urls = pd.read_excel(f'{project_name}.xlsx')Конвертация в set:
site_pages = set(parsed_urls['urls'])
Далее для сопоставления я буду использовать адреса из sitemap.
Парсинг Sitemap
Можно указать user agent, чтобы парсер не получил ответ 403 из-за настроек сервера или CDN, например CloudFlare:
user_agent = {'User-agent': 'Mozilla/5.0'}Одна карта
Функция принимает адрес карты сайта,
парсит,
возвращает set с адресами из карты сайта.
def parse_sitemap_one_map(sitemap_path):
r = requests.get(sitemap_path, headers=user_agent)
soup = BeautifulSoup(r.text, 'xml')
url_set = {url.text for url in soup.find_all('loc')}
print('Количество страниц в Sitemap:', len(url_set))
return url_set
Мультакарта
Функция принимает адрес карты сайта,
парсит, получает список вложенных карт,
парсит по очереди вложенные карты,
возвращает set со всеми адресами из мультикарты.
def parse_sitemap_many_maps(sitemap_path):
r = requests.get(sitemap_path, headers=user_agent)
soup = BeautifulSoup(r.text, 'xml')
maps = [sitemap.text for sitemap in soup.find_all('loc')]
url_set = set()
for sitemap in maps:
r = requests.get(sitemap, headers=user_agent)
soup = BeautifulSoup(r.text, 'xml')
current_urls = {url.text for url in soup.find_all('loc')}
url_set = url_set.union(current_urls)
print('Количество страниц в Sitemap:', len(url_set))
return url_set
Сопоставление адресов из базы Яндекса с адресами из Sitemap
Сопоставление
Функция принимает set с адресами из базы Яндекса и set с адресами из карты сайта,
в pages_in_index_but_not_in_sitemap записываются адреса, которые есть в поисковой базе, но отсутствуют в карте сайта,
оба отчета записываются в соседние колонки датафрейма для дальнейшего визуального сопоставления,
функция возвращает датафрейм.
def comapre_indexed_pages_with_pages_in_sitemap(indexed_pages, pages_in_sitemap):
pages_in_index_but_not_in_sitemap = indexed_pages - pages_in_sitemap
pages_is_sitemap_but_not_in_index = pages_in_sitemap - indexed_pages
pages_in_index_but_not_in_sitemap_df = pd.DataFrame(
pages_in_index_but_not_in_sitemap,
columns=['pages_in_index_but_not_in_sitemap']
)
pages_is_sitemap_but_not_in_index_df = pd.DataFrame(
pages_is_sitemap_but_not_in_index,
columns=['pages_is_sitemap_but_not_in_index']
)
df = pd.concat([pages_in_index_but_not_in_sitemap_df, pages_is_sitemap_but_not_in_index_df], axis=1)
return df
Создание визуального отчета в таблице
Функция с настройками для экспорта
def export_report_data_to_excel(data, path, filename):
os.makedirs(path, exist_ok=True)
project_report = pd.ExcelWriter(os.path.join(path, filename), engine='xlsxwriter')
data.to_excel(project_report, index=False)
project_report.save()
Экспорт визуального отчета
Функция принимает название проекта, путь, по которому будет лежать отчет, set с url в индексе, set url из карты сайта,
затем запускается функция сопоставления и запись датафрейма в data,
экспортируется файл, название которого состоит из названия проекта и даты отчета.
def make_visual_report_for_yandex(project_name, path, indexed_pages, pages_in_sitemap):
data = comapre_indexed_pages_with_pages_in_sitemap(indexed_pages, pages_in_sitemap)
current_date = datetime.now().strftime('%d_%m_%Y')
filename = f'{project_name}_{current_date}.xlsx'
export_report_data_to_excel(data, path, filename)
Экспорт визуального отчета для сайтов с мультикартой
def make_visual_report_for_yandex_for_many_maps(project_name, path, indexed_pages, pages_in_sitemap):
data = comapre_indexed_pages_with_pages_in_sitemap(indexed_pages, pages_in_sitemap)current_date = datetime.now().strftime('%d_%m_%Y')
filename = f'{project_name}_{current_date}.csv'
data.to_csv(f'{path}/{filename}', index=False)
Модуль os создает директорию, которая была указана в настройках, если ее нет:
Отчет для визуального сопоставления содержит две колонки:
Страницы, которые есть в индексе, но отсутствуют в карте сайта – тут можно найти дубли, которые образованы параметрами, затем добавить параметры в robots.
txt в Clean-param. Минусом парсинга карты сайта для сопоставления является возможное отсутствие в ней каких-нибудь побочных страниц (новости, контакты, информация о работе и т.д.) и пагинации, которую я рекомендую не закрывать от индексирования – подробнее. Так всегда будет несоответствие в отчете, но при быстром просмотре вы быстро распознаете «законное» несоответствие и реальные дубли.
Страницы, которые если в карте сайта, но отсутствуют в индексе – эти страницы почему-то были не проиндексированы, нужно отправить на переобход.
Создание списка на переобход
Похожая функция как для сопоставления, которая принимает set с адресами из базы Яндекса и set с адресами из карты сайта,
в pages_in_index_but_not_in_sitemap записываются адреса, которые есть в поисковой базе, но отсутствуют в карте сайта,
оба отчета записываются в одну колонку для отправки на переобход,
функция возвращает датафрейм.

def get_recrawl_base_for_yandex(indexed_pages, pages_in_sitemap):
pages_in_index_but_not_in_sitemap = indexed_pages - pages_in_sitemap
pages_is_sitemap_but_not_in_index = pages_in_sitemap - indexed_pages
all_pages_to_recrawl = list(pages_in_index_but_not_in_sitemap.union(pages_is_sitemap_but_not_in_index))data = pd.DataFrame(all_pages_to_recrawl, columns=['urls'])
return data
Экспорт таблицы со списком на переобход
def make_recrawl_base_for_yandex(project_name, path, indexed_pages, pages_in_sitemap):
data = get_recrawl_base_for_yandex(indexed_pages, pages_in_sitemap)
filename = f'{project_name}.xlsx'
export_report_data_to_excel(data, path, filename)
Экспорт таблицы со списком на переобход для сайтов с мультикартой
def make_recrawl_base_for_yandex_many_maps(project_name, path, indexed_pages, pages_in_sitemap):
data = get_recrawl_base_for_yandex(indexed_pages, pages_in_sitemap)
filename = f'{project_name}.csv'
data.to_csv(f'{path}/{filename}', index=False)
Директория, которая указана в настройках, создается модулем os, если ее нет:
Список на переобход:
В списке просто объединены url,которые содержатся в двух колонках в визуальном отчете.
Главная функция
def main_yandex_index_sitemap_compare():
user_id = get_user_id()
print(project_name)
indexed_pages = yandex_get_indexed_pages(user_id, host)
pages_in_sitemap = parse_sitemap_one_map(sitemap_path)
print('Подготовка визуального отчета')
make_visual_report_for_yandex(project_name, YANDEX_VISUAL_REPORTS_DIR, indexed_pages, pages_in_sitemap)
print('Подготовка таблицы со списком url на переобход')
make_recrawl_base_for_yandex(project_name, YANDEX_RECRAWL_BASES_DIR, indexed_pages, pages_in_sitemap)
Запуск
main_yandex_index_sitemap_compare()
Автоматизaция — Индексирование сайтов с помощью Index Now на Python
Автоматизация — Индексирование сайтов с помощью Google Indexing API на Python
# Теги
Техническая оптимизация
Автоматизация SEO на Python
Василий Фокин
Работаю в агенстве Marronnier с 2015 года, занимаюсь продвижением сайтов в посковых системах.
Как добавить сайт в Яндекс.Вебмастер: подтверждение прав и настройка
Довольно часто новый сайт не получается найти в Яндексе. Даже если набрать в поисковой строке его название. Причины этого могут быть разные. Иногда поисковики просто еще не знают о том, что появился новый ресурс. Чтобы разобраться, в чём дело и решить проблему, нужно зарегистрировать сайт в Яндекс.Вебмастере.
Что такое индексация сайта в Яндексе
Сначала разберёмся, как поисковики вообще узнают о новых сайтах или изменениях на них. У Яндекса есть специальная программа, которая называется поисковым роботом. Этот робот гуляет по интернету и ищет новые страницы. Иногда он заходит на старые – проверяет, не появилось ли на них что-то новое.
Когда робот находит полезную страницу, он добавляет её в свою базу данных. Эта база называется поисковым индексом. Когда мы ищем что-то в поиске, мы видим сайты из этой базы. Индексирование – это когда робот добавляет туда новые документы.
Робот не может каждый день обходить весь интернет. Ему на это не хватит мощности. Поэтому ему нужно помогать – сообщать о новых страницах или изменениях на старых.
Что такое Яндекс.Вебмастер и зачем он нужен
Яндекс.Вебмастер – это официальный сервис от Яндекса. В него нужно добавить сайт, чтобы робот узнал о его существовании. С его помощью владельцы ресурсов (веб-мастера) могут доказать, что это именно их сайт.
Ещё в Вебмастере можно посмотреть:
- когда и куда заходил робот;
- какие страницы он проиндексировал, а какие – нет;
- по каким ключевым словам приходят люди из поиска;
- есть ли технические ошибки.
Через этот сервис можно настроить сайт: задать регион, цены товаров, защитить свои тексты от воровства. Можно попросить робота заново зайти на страницы, на которых вы внесли изменения. Яндекс.Вебмастер упрощает переезд на https или другой домен.
Как добавить новый сайт в Яндекс.
ВебмастерЗайдите в панель Вебмастера. Нажмите «Войти». Логин и пароль можно ввести те, которые вы используете для входа на почту Яндекса. Если у вас еще нет учетной записи, придётся зарегистрироваться.
После входа вы попадёте на страницу со списком добавленных ресурсов. Если вы ранее не пользовались сервисом, то список будет пуст. Для добавления нового ресурса нажмите кнопку «+».
На следующей странице введите адрес вашего сайта и подтвердите его добавление.
На последнем этапе нужно подтвердить права – доказать Яндексу, что вы являетесь владельцем. Есть несколько способов это сделать.
Как подтвердить права на сайт в Яндекс.Вебмастер
Самый простой способ подтверждения прав в Яндекс.Вебмастер – добавить файл на сайт. Для этого нажмите на вкладку «HTML-файл».
Нажмите на ссылку, выделенную красным прямоугольником на скриншоте ниже:
Скачается небольшой файл.
Этот файл сейчас понадобится, поэтому сохраните его куда-нибудь на видное место. Например, на Рабочий стол. Не переименовывайте файл! В нём ничего менять не нужно.
Теперь загрузите этот файл на ваш сайт. Обычно для этого используют файловые менеджеры, но для пользователей InSales ничего этого делать не нужно. Просто зайдите в бэк-офис, нажмите «Файлы». Затем наверху страницы – «Добавить файл». Выберите скачанный ранее файл.
Затем вернитесь в панель Яндекс.Вебмастер и нажмите кнопку «Проверить». После успешного подтверждения прав доступа ваш сайт появится в списке добавленных. Таким образом, вы сообщили в Яндекс.Вебмастер о новом сайте.
Мета-тег Яндекс.Вебмастер
Иногда описанный выше способ не срабатывает, и владельцы не могут подтвердить права на сайт в Вебмастере. В таком случае можно попробовать другой способ: добавить строку кода в шаблон.
В Вебмастере перейдите на вкладку «Мета-тег».
Вы увидите строчку, которую нужно добавить в HTML-код.
Пользователи InSales могут обратиться в техподдержку и попросить вставить этот код. Это будет выполнено в рамках бесплатной доработки.
Когда они сделают это, в Вебмастере нажмите кнопку «Проверить». Поздравляем, вы зарегистрировали сайт в поисковике!
Предварительная настройка Яндекс.Вебмастер
Сайт добавлен в поиск, теперь робот точно зайдёт к вам и проиндексирует его. Обычно это занимает до 7 дней.
Но что делать дальше? Предлагаем ознакомиться с краткой инструкцией о том, как настроить Вебмастер, что делать в первую очередь.
Добавьте ссылку на sitemap
Для того чтобы робот быстрее индексировал ресурс, добавьте в Вебмастер файл sitemap.xml. В этом файле содержатся адреса всех страницах ресурса.
У интернет-магазинов на InSales этот файл уже настроен и должен добавляться в Вебмастер автоматически. Если этого не произошло, добавьте ссылку на sitemap.
xml в разделе «Индексирование» — «Файлы Sitemap».
Проверьте robots.txt
В файле robots.txt указывают страницы, на которые роботу заходить не нужно. Это корзина, оформление заказа, бэк-офис и другие технические документы.
InSales по умолчанию создаёт robots.txt, в который не нужно вносить изменения. На всякий случай рекомендуем проверить, нет ли ошибок в robots. Для этого зайдите в «Инструменты» — «Анализ robots.txt».
Задайте регион сайта
На странице «Информация о сайте» — «Региональность» вы можете задать регион сайта. Для интернет-магазинов это те города, регионы и страны, по которым доставляются купленные товары. Если у вас не магазин, а справочник или блог, то регионом будет весь мир.
Задайте регион продаж как показано на скриншоте:
Чем ещё полезен Вебмастер?
На странице «Поисковые запросы» можно видеть фразы, по которым попадают к вам из поиска.
В разделе «Индексирование» выводится информация о том, когда робот был на сайте и сколько страниц он нашёл.
Подраздел «Переезд сайта» поможет вам, если вы решили установить SSL сертификат и перейти на https. Также крайне полезен подраздел «Переобход страниц». В нём вы можете указать роботу страницы, на которых изменилась информация. Тогда при следующем визите робот проиндексирует их в первую очередь.
На странице «Товары и Цены» раздела «Информация о сайте» можно предоставить информацию о вашем интернет-магазине. Для этого на ресурсе должна быть настроена выгрузка данных о товарах и ценах в формате YML. При правильной настройке в поисковой выдаче страниц товаров будут отображаться цены и информация о доставке.
Если вы хотите улучшить видимость вашей компании в сервисах Яндекса, следует воспользоваться разделом «Полезные сервисы». В Яндекс.Справочнике можно указать телефон и адрес вашего магазина, часы работы. Эта информация будет отображаться прямо в выдаче Яндекса. Также это добавит вас на Яндекс.Карты.
Яндекс.Метрика — еще один важный инструмент владельца интернет-ресурса, показывающий данные о посещаемости.
Статистика и динамика посещаемости сайта отображается в удобных для анализа таблицах, диаграммах и графиках.
После подключения к сервисам Яндекс.Вебмастер и Яндекс.Метрика вы будете получать достаточное количество информации для управления позициями сайта и его посещаемостью. Это незаменимые инструменты для владельцев сайтов, желающих продвинуть свои ресурсы в самом популярном в России поисковике.
Следующий шаг в продвижении сайта — добавить его в Гугл через аналогичный сервис Search Console. На этом все, удачи в продвижении!
Возможно вам также будет интересно:
30.12.2022
Завершается 2022 год, и владельцы e-commerce-бизнеса традиционно подводят итоги. Изменения, произошедшие в течение последних 12 месяцев, затронули не только предпринимателей,…
30.12.2022
Маркетплейс «Озон» из года в год возглавляет рейтинг самых популярных торговых платформ в России, входя в тройку лидеров.
В конце…
29.12.2022
Не так давно на маркетплейсах продавались исключительно малогабаритные товары. Спросом пользовались в основном различные мелкие изделия небольшого веса: предметы гардероба,…
29.12.2022
Текст — далеко не главная составляющая успеха интернет-магазина. Он вполне может функционировать и давать прибыль, даже если у вас скопированные…
28.12.2022
Одежда и обувь — самые продаваемые в интернете товары. По различным данным, они занимают примерно 63 процента всех онлайн-продаж. Однако…
28.12.2022
Текучка кадров бывает в любой сфере бизнеса. Это естественный и нормальный процесс. Но когда она превышает критический порог 5 процентов…
27.12.2022
Современные салоны красоты предоставляют клиентам обширный перечень услуг. Стрижки, прически, маникюр, педикюр, шугаринг, пирсинг, перманентный макияж, уход за кожей лица.
..
27.12.2022
Пилотный проект по самозанятости запустили в 2019 году, а в 2020 расширили действие на всю территорию Российской Федерации. Преподавателям, кузнецам,…
26.12.2022
В течение 1,5-2 месяцев до наступления новогодних праздников многие продавцы не успевают обрабатывать заказы: заявки поступают стабильным потоком, а клиенты…
API Яндекс. Веб-мастер. Условия предоставления услуг
Настоящий документ является переводом Пользовательского соглашения для Сервисов Яндекса на английский язык. В случае противоречия между русскоязычной версией Пользовательского соглашения сервисов Яндекса и настоящим переводом — только русскоязычная версия Пользовательского соглашения сервисов Яндекса имеет юридическую силу. Русскоязычную версию Пользовательского соглашения сервисов Яндекса можно найти здесь: https://yandex.ru/legal/webmaster_api/?lang=ru.
Настоящий документ (далее — «Условия») представляет собой предложение ООО «ЯНДЕКС» (далее — «Яндекс») пользователю сети Интернет (далее — «Пользователь») использовать API Яндекс Вебмастер Услуга на условиях, изложенных ниже:
1.
1 Термины и определения
Клиентское приложение — уникальный идентификатор (UID), выдаваемый Пользователю, позволяющий получить доступ к функциям Сервиса.
Данные — данные, предоставляемые Сервисом Конечным пользователям, то есть отображающие индекс, сделанный поисковой системой Яндекса для сайтов, предоставленных Яндексом. Веб-мастер.
Расширенные данные — данные, предоставляемые Сервисом Конечным пользователям, включая Данные и информацию о внешних ссылках на сайты Конечных пользователей.
Сервис — API Яндекс Вебмастер Сервис, то есть программный интерфейс, обеспечивающий онлайн-доступ к отдельным функциям Яндекса. Вебмастер
Сайт Пользователя — интернет-ресурсы Пользователя.
Приложение Пользователя — приложения Пользователя, разработанные с использованием Сервиса.
Конечные пользователи — посетители интернет-ресурсов, в том числе использующие сайт Пользователя и его сервисы для размещения внешних ресурсов в сети Интернет.
Яндекс Вебмастер — онлайн-сервис Яндекса, показывающий индекс, созданный поисковой системой Яндекс для сайтов Пользователей. Сервис расположен по адресу: http://webmaster.yandex.ru.
1.2 Услуга, предоставляемая Пользователю, регулируется настоящими Условиями, а также регулируется:
1.3 При использовании Сервиса или его отдельных функций, к которым относится регистрация Приложения Пользователя, регистрация на Сервисе, размещение кода услуги на сайте Пользователя или в Приложении, либо использование любой другой функции Сервиса, Пользователь считается приняли настоящие Условия, а также условия, указанные в документах, изложенных в п. 1.2. настоящего Соглашения, и обязуется полностью их соблюдать в полном объеме без каких-либо ограничений и исключений. Использование Сервиса на условиях, отличных от указанных в настоящем документе, не допускается без предварительного согласия Яндекса. В случае несогласия Пользователя с какими-либо Условиями настоящего Соглашения или условиями, указанными в вышеуказанных документах, он не вправе использовать Сервис.
1.4 Пользователь берет на себя исключительную ответственность за соблюдение применимого законодательства при использовании Сервиса. Если прямо не указано иное, под термином «законодательство», упомянутым в настоящем документе, понимается любое применимое законодательство, включая законодательство Российской Федерации, а также законодательство страны, в которой Пользователь в настоящее время проживает или совершает действия, связанные с настоящими Условиями. Если использование той или иной функции Сервиса нарушает законодательство, Пользователь обязуется воздержаться от использования Сервиса. Пользователь обязуется лично и за свой счет урегулировать все претензии и/или иски третьих лиц, вызванные действиями Пользователя, связанными с использованием Сервиса, а также полностью возместить любые убытки, если таковые имелись, понесенные Яндексом.
1.5 К настоящим Условиям, а также к отношениям между Яндексом и Пользователем, возникающим в связи с использованием Сервиса, применяется право Российской Федерации.
2.1 В соответствии с настоящими Условиями Пользователь может выступать в качестве владельца Сайта, специализирующегося в целом или в частности на предоставлении услуг веб-хостинга неограниченному кругу третьих лиц, в том числе на размещении информационных ресурсов третьих лиц на серверы с онлайн-доступом; либо Пользователь может выступать в качестве разработчика программного обеспечения для таких информационных ресурсов.
2.2. С помощью Сервиса Пользователь получает Данные (Расширенные данные) о сайтах Конечных пользователей и отображает их на сайте Пользователя или в Приложении Пользователя в порядке, установленном настоящими Условиями. Яндекс обеспечивает передачу Данных (Расширенных Данных), полученных с помощью технологии Яндекс Вебмастер, Пользователю в соответствии с условиями и ограничениями, указанными в настоящих Условиях. Пользователь направляет запросы к Сервису в соответствии с техническими условиями, изложенными в Руководстве разработчика API Яндекса для веб-мастеров, расположенном в настоящее время по адресу: http://api.
yandex.ru/webmaster.
2.3 Пользователь предоставляет Конечным пользователям доступ к Сведениям (Расширенным данным) о сайтах Конечных пользователей, которые Пользователь получает от Яндекса посредством Сервиса. Конечный пользователь, который хочет использовать эту функцию, соглашается на загрузку Данных (Расширенных данных) Пользователем по протоколу OAuth. Пользователь не вправе загружать Данные (Расширенные данные) без согласия конечного пользователя.
2.4 Яндекс вправе по своему усмотрению определять и изменять состав и объем Данных (Расширенных данных), а также принципы и условия использования Пользователем Данных (Расширенных данных) или любой их части. Яндекс предоставляет Пользователю право на использование Данных (Расширенных Данных) и/или любой их части в электронной форме путем отображения их на Сайте или в Приложении Пользователя и адресации исключительно Конечному Пользователю, владеющему интернет-ресурсами, на которых эти Данные (Расширенные данные) относится к.
Это право не подлежит никаким территориальным ограничениям при условии полного соблюдения Пользователем настоящих Условий.
2.5. Для доступа к Сервису Пользователь должен зарегистрировать Клиентское Заявление, заполнив форму, расположенную по адресу https://oauth.yandex.ru/client/new. Яндекс по своему усмотрению может отказать в доступе к Сервису без объяснения причин. Пользователь не вправе использовать какое-либо программное обеспечение, устройства или иные средства, позволяющие автоматически или иным образом регистрировать Приложения Клиента в нарушение установленного Яндексом порядка.
2.6. Пользователь может использовать Сервис только для компьютерных приложений и онлайн-сервисов, открытых для бесплатного и неограниченного публичного доступа. Пользователь не вправе использовать Сервис для проектов с ограниченным доступом третьих лиц. Требование регистрации не считается ограничением доступа в соответствии с настоящим пунктом.
2.7. При использовании Сервиса Пользователь ссылается на технологии Яндекса путем размещения логотипа Яндекса и текста «Данные предоставлены Сервисом Яндекс Вебмастер» на Сайте Пользователя или в Приложении Пользователя в непосредственной близости от выходных Данных, полученных от Сервиса, вместе с гиперссылкой на http://webmaster.
yandex.ru со словами «Яндекс Вебмастер». Также Пользователь должен указать, что Данные хранятся на ресурсах Яндекса. При использовании Сервиса Пользователь не вправе удалять, скрывать или изменять любые товарные знаки, логотипы, ссылки или иные упоминания Яндекса или иных лиц, содержащиеся в Сервисе или полученные вместе с ним, а также любые другие уведомления и/или информацию, предоставленные Службой.
2.8. Пользователь не вправе хранить, обрабатывать, управлять, изменять Данные и Расширенные данные, передавать их третьим лицам и использовать иными способами, чем указано в настоящем документе.
2.9. Пользователь не вправе использовать Сервис для создания онлайн-сервисов, программного обеспечения или иным образом, если такое использование нарушает Закон, документы, указанные в п. 1.2. настоящих Правил, и/или права и законные интересы третьих лиц.
2.10. Яндекс оставляет за собой право изменять, исправлять или обновлять Сервис в любое время без предварительного уведомления Пользователя.
После выхода новой стабильной версии Яндекс анонсирует этот выпуск на страницах Сервиса. После выхода новой версии Сервиса Яндекс не гарантирует стабильность и продолжительность работы его старых версий. Пользователь, отказывающийся от обновления версии Сервиса, может продолжать на свой страх и риск использовать устаревшую версию или прекратить использование Сервиса.
3.1. Сервис является исключительной собственностью Яндекса. Исключительные права на Данные и Расширенные данные принадлежат Яндексу или иным правообладателям. Настоящие Условия не дают Пользователю права использовать Сервис или Данные помимо функций, предоставляемых интерфейсом Сервиса в соответствии с настоящими Условиями.
3.2. Используя Сервис, Пользователь разрешает Яндексу использовать логотип, товарный знак и/или фирменное наименование Пользователя и/или Сайта Пользователя в информационных, рекламных или маркетинговых целях без дальнейшего согласия Пользователя и какого-либо вознаграждения за такое использование.
4.1. Сервис (включая Данные и Расширенные данные) предоставляется Яндексом «как есть». Яндекс не гарантирует, что Сервис и Данные (Расширенные данные) соответствуют ожиданиям и целям Пользователя, а также не гарантирует бесперебойную и безошибочную работу всего Сервиса или его частей, компонентов и/или функций, а также достоверность, точность, полнота и актуальность Данных (Расширенных Данных). Яндекс не гарантирует бесперебойную и безошибочную работу сторонних программных продуктов и решений (в том числе библиотек), рекомендованных для использования с Сервисом в технических условиях и иной связанной с ним документации. Яндекс не несет ответственности за убытки, прямые или косвенные, причиненные Пользователю или третьим лицам в результате использования или невозможности использования Сервиса, и не покрывает ни один из них.
4.2. Пользователь несет полную ответственность за использование Приложения Клиента. Пользователь не вправе регистрировать Клиентское приложение на третьих лиц и передавать или предоставлять их им.
Яндекс не несет ответственности за несанкционированное использование Приложения Клиента третьими лицами. Все действия, совершенные в рамках Сервиса с использованием Клиентского приложения Пользователя, считаются совершенными Пользователем.
5.1. Яндекс вправе по своему усмотрению и без какого-либо уведомления прекратить или приостановить доступ Пользователя к Сервису или его отдельным функциям с использованием его учетной записи и/или Клиентского приложения без объяснения причин, в том числе в случае нарушения Условий. и Условия Пользователем.
5.2. Все вопросы и претензии, связанные с использованием/невозможностью использования Сервиса, направляются через форму обратной связи по адресу: https://feedback2.yandex.com/api-webmaster.
5.3. Яндекс может изменить Условия в любое время без предварительного уведомления. Актуальная редакция Условий доступна по адресу: https://yandex.ru/legal/webmaster_api. Новая редакция Условий вступает в силу после публикации на веб-адресе, указанном в настоящем пункте.
Продолжение использования Сервиса после изменения Условий означает согласие Пользователя с его последней редакцией. Пользователь обязан прекратить использование Сервиса, если он не согласен с какими-либо изменениями, внесенными Яндексом в Условия.
Дата: 18.12.2014
Предыдущая версия документа: https://yandex.com/legal/webmaster_api/13102014.
Предыдущая версия документа: https://yandex.com/legal/webmaster_api/30072012.
README — Документация для yandex-webmaster (0.1.1)
Обертка для API Яндекс.Вебмастера.
О Яндекс.Вебмастере
- Русский
- Английский
Документация API
- Русский
- Английский
Установка
[sudo] gem install yandex-webmaster
Использование
Аутентификация
API Яндекса использует OAuth для аутентификации. К счастью, жемчужина Яндекс::Вебмастер скрывает от вас большую часть деталей.
Если вы никогда не использовали Webmaster API или хотите изменить свои учетные данные для аутентификации или срок действия вашего токена авторизации истек, вам следует создать новый:
требуют "rubygems" требуется «яндекс-вебмастер» # Получите свои учетные данные API на https://oauth.yandex.ru/ webmaster = Yandex::Webmaster.new(:app_id => 'your_app_id', :app_password => 'your_app_password') => #<Яндекс::Вебмастер::Клиент> # Перейдите по ссылке авторизации, вы будете перенаправлены на ссылку обратного вызова, указанную в настройках вашего приложения. веб-мастер.authorize_url => "https://oauth.yandex.ru/authorize?response_type=code&client_id=your_app_id" # Используйте код авторизации из параметров, чтобы получить токен авторизации webmaster.authenticate(params[:code]) => #<Яндекс::Вебмастер::Клиент> # Если ошибка не возникает, вы можете использовать любой метод API # Чтобы увидеть, какой токен сейчас используется, вызовите конфигурацию клиента токен = webmaster.configuration.oauth_token => "82af4af2a42e4019бд59а325да0ф31д8"
Если вы хотите восстановить ранее использованный токен, это тоже легко сделать:
требуют 'rubygems' требуется «яндекс-вебмастер» # получить учетные данные API на https://oauth.yandex.ru/ webmaster = Yandex::Webmaster.new(:oauth_token => 'токен') => #<Яндекс::Вебмастер::Клиент>
Чтобы проверить, аутентифицирован ли ваш клиент, используйте аутентифицирован? Метод .
# Мы уже инициализировали клиента ранее. веб-мастер.аутентифицированный? => правда
Операции со списком сайтов
Получить список сайтов
Большинство способов загрузки Яндекс::Вебмастер ленивы, данные будут реально загружены только тогда, когда они вам действительно понадобятся.
вебмастер.хост => #<Яндекс::Вебмастер::ApiFactory> веб-мастер.hosts.все => #<Массив[Яндекс::Вебмастер::Хост]> # на самом деле это не делает запрос к API, список хостов кэшируется. веб-мастер.hosts.first => #<Яндекс::Вебмастер::Хост>
Чтобы перезагрузить список хостов, вызовите метод #host с явно переданным параметром reload .
# вызывает API и кеширует список хостов webmaster.hosts(true).все => #<Массив[Яндекс::Вебмастер::Хост]> # очищает кеш и снова обращается к API. webmaster.hosts(true).first => #<Яндекс::Вебмастер::Хост>
Создать сайт
webmaster.hosts.create('имя хоста')
=> #<Яндекс::Вебмастер::Хост>
Операции с сайтом
Получение ресурсов сайта
Вы можете легко узнать, какие методы API доступны для выбранного хоста.
ч = webmaster.hosts.last
=> #<Яндекс::Вебмастер::Хост>
h.ресурсы
=> {:host_information => "https://webmaster.yandex.ru/api/v2/hosts//stats", :verify_host => "https://webmaster.yandex.ru/api/v2/ hosts//verify" ... :excluded_urls_history => "https://webmaster.yandex.ru/api/v2/hosts//history/excluded-urls"}
Удаление сайта
h = webmaster.hosts.last => #<Яндекс::Вебмастер::Хост> ч.удалить => #<Яндекс::Вебмастер::Хост> ч.удален? => правда
Операции со статистикой сайта
Запрос обновляет следующие поля в Host:
-
#имя -
#проверка -
#ползание -
#вирус -
#последний_доступ -
#тик -
#url_count -
#index_count
Также запрос заполняет следующие поля:
-
#url_errors -
#internal_links_count -
#links_count
ч = webmaster.hosts.last => #<Яндекс::Вебмастер::Хост> # Заполняет экземпляр хоста статистической информацией h.load_stats => #<Яндекс::Вебмастер::Хост> h.url_errors => 379843 h.internal_links_count => 52367 h.links_count => 943
Операции с файлами Sitemap
Получение списка файлов Sitemap
# вызывает API и кэширует список файлов Sitemap для хоста webmaster.hosts.first.sitemaps => #<Массив[Яндекс::Вебмастер::Хосты::Карта сайта]>
Чтобы перезагрузить список карт сайта для хоста, вызовите метод #host с явно переданным параметром reload .
webmaster.hosts.first.sitemaps(true) => #<Массив[Яндекс::Вебмастер::Хосты::Карта сайта]>
Получение информации о файле Sitemap сайта
Для загрузки подробной информации о файле Sitemap используйте метод #load_details .
карта сайта = webmaster.hosts.first.sitemaps.first => #<Яндекс::Вебмастер::Хосты::Карта сайта> карта сайта.load_details => #<Яндекс::Вебмастер::Хосты::Карта сайта>
Когда детали загружены, вы можете увидеть информацию о карте сайта.
карта сайта.latest_info => #<Яндекс::Вебмастер::Hosts::SitemapInfo> карта сайта.in_search_info => #<Яндекс::Вебмастер::Hosts::SitemapInfo>
Удаление карты сайта
карта сайта = webmaster.

webmaster.yandex.net/v4/user'
to_list())
get(USERID_URL, headers=get_auth_headers())
union(current_urls)
csv'
oauth_token
=> "82af4af2a42e4019бд59а325да0ф31д8"
hosts.first
=> #<Яндекс::Вебмастер::Хост>
hosts.last
=> #<Яндекс::Вебмастер::Хост>
ч.удалить
=> #<Яндекс::Вебмастер::Хост>
ч.удален?
=> правда
hosts.first.sitemaps
=> #<Массив[Яндекс::Вебмастер::Хосты::Карта сайта]>
