Google XML Search. Руководство разработчика
Google XML Search - Коды ошибок
При некорректной обработке поисковых запросов ответ будет содержать тег error
Пример ответа с ошибкой:
В таблице ниже приведены коды и описания ошибок. При этом HTTP-Code сервера = 200
Код ошибки | Описание ошибки |
---|---|
2 | Задан пустой поисковый запрос (в элементе query передано пустое значение) |
3-13 | Не верно указано значение GET-параметров (groupby, domain, hl, device, page, lr, tbm, punycode, hlword, nfpr, safe) |
15 | Для заданного поискового запроса отсутствуют результаты поиска. (По запросу ничего не нашлось) |
20-25 | Не удалось получить данные. Повторите запрос еще раз |
31 | Пользователь с таким ID не зарегистрирован в системе |
42 | Ключ, выданный при регистрации, содержит ошибку. Необходимо проверить корректность адреса, используемого для отправки запросов |
101 | Сервис сбора данных Google XML временно отключен. Ведутся технические работы, попробуйте позже |
110 | Нет свободных каналов для сбора данных. Необходимо сделать перезапрос |
200 | На вашем счету закончились деньги. Для дальнейшей работы пополните баланс |
Деньги за запросы, с ошибками не списываются, за исключением кода 15. За данный запрос деньги будут списаны, т.к. запрос обработан корректно, а резльтатов поиска в поисковой выдаче по данному запросу не нашлось.
Ошибки сервера
Также может возникнуть ситуация, когда возникает ошибка сервера. При этом он возвращает HTTP-Code, отличный от 200-го. Это означает, что запрос не обработан и что-то пошло не так. Деньги за такие запросы не списываются.
HTTP-код ошибки сервера | Описание ошибки |
---|---|
500-502 | Внутренняя ошибка сервера. Необходимо сделать перезапрос. |
503 | Превышено максимально допустимое количество запросов в секунду/минуту. |
Рекомендуемые настройки скорости парсинга
Чтобы избежать ошибок, связанных с излишней нагрузкой на сервис Google XML Search, мы рекомендуем собирать результаты не более чем в 15 одновременных потоков и отправлять следующий запрос сразу после получения результата на предыдущий. Если такая реализаия не представляется возможной, то нужно слать не более 15 запросов каждую секунду.
Не рекомендуем слать запросы большими пакетами, выдерживая интервал времени. Например одномоменто отправлять пакет из 500 запросов. Часть из этих запросов обработаются, часть встанет в очередь на обработку, а остальные отсекутся. В результате чего вы создадите излишнюю нагрузку на сервер, а скорость парсинга будет значительно ниже, по сравнению с тем, если бы вы распределяли запросы равномерно.
Если вам необходимо заведомо больше потоков, рекомендуем сначала написать в нашу техподдержку, мы сориентируем и подскажем как лучше сделать.