#php #indexing
#php #индексирование
Вопрос:
Я хотел бы знать, возможно ли проверить, проиндексирован ли URL Google с помощью PHP.
Противоречит ли это их ToS?
Ответ №1:
Делать это без API противоречит TOS. Для малого объема вы можете:
// CHECK IF PAGE IS IN GOOGLE INDEX
$domain = 'stackexchange.com';
if (strstr(file_get_contents("http://www.google.com/search?q=site:$domain"), 'did not match any documents')) {
// Page is not in the index
print 'No Go!';
}
else {
print 'All Good!';
}
exit;
Ответ №2:
Вы можете прочитать здесь (соответствующая цитата ниже) ответ на часть ToS этого вопроса. В принципе, без ключа API и их разрешения это, вероятно, не очень хорошая идея. Однако из-за объема, который они обрабатывают, вам может сойти с рук, если вы не делаете ТОННЫ запросов.
Проверка PageRank — это еще кое-что, что люди часто пытаются делать, но они не придают этому достоинству такого большого значения (ходят слухи), а ключи API старого стиля действительно трудно найти.
Не используйте неавторизованные компьютерные программы для отправки страниц, проверки рейтинга и т.д. Такие программы потребляют вычислительные ресурсы и нарушают наши Условия предоставления услуг. Google не рекомендует использовать такие продукты, как WebPosition Gold ™, которые отправляют автоматические или программные запросы в Google.
Комментарии:
1. Спасибо, я ничего не буду делать против их ToS, так что это больше не нужно (для меня).
Ответ №3:
Ну, не явно. Но вы можете проверять каждый просмотр страницы с помощью:
$agent = $_SERVER['HTTP_USER_AGENT'];
if (strstr($agent, 'googlebot')){
// tell the database that google has crawled this page.
}
Комментарии:
1. он только проверит, посещал ли Google когда-либо эту страницу, и не подтвердит, проиндексировал ли он ее.
Ответ №4:
Для польского языка вам следует попробовать выполнить проверку между UTF-8 и ISO-8859-2 следующим образом:
$encAry = array('ISO-8859-2', 'UTF-8');
$contentEncoding = mb_detect_encoding( $content, $encAry );
$googleSearchResult = mb_convert_encoding($content, 'UTF-8', $contentEncoding);
У меня работает.