Перевод через API Google или Yandex

Всем привет. Ребят подскажите рабочий вариант перевода постов в автоматическом режиме, для парсера. Google API вроде как банит, если часто идут запросы, скрипт с классом уже не рабочий:

error_reporting(E_ALL ^ E_NOTICE);

include('translate.class.php');

$x = new translator_text();

$text = 'Al Hotel Demo si vive in armonia con se stessi, immersi nel verde di una natura rigogliosa, con i boschi di pini, querce e tamerici in un terreno a terrazze sul mare. Il Villaggio Turistico è un moderno centro di vacanze, concepito e costruito per rispondere a tutte le esigenze dei suoi ospiti.';

echo'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';

echo $x->translate(strip_tags(trim($text)), 'it', 'ru');

?>

Что актуально в 2021 году? Есть скрипты на php? Яндекс не банил ранее, сейчас пишу скрипт для него, но закрались сомнения. Поделитесь, знаниями, может ссылками на готовые скрипты


Ответы (2 шт):

Автор решения: Joe Ford
  1. Купить api и пользоваться ими как белый человек. У Google вроде даже есть бесплатный лимит на их GCP.
  2. Если прикрыли curl, можно попробовать имитировать браузер, построив микросервис вокруг puppeteer (почти гарантированно не сработает против Google на длинной дистанции), но не уверен, что это не нарушит tos
→ Ссылка
Автор решения: crowly001

В 2019 году свободно работал скрипт для YD, сейчас он не работает, кто-нибудь писал под текущие реалии?

$word = '
In the jsp page'; // Текст для перевода
$key = '111'; // Ваш API ключ

// Перевод на английский
$data = array(
    'key' => $key,
    'text' => $word,
    'lang' => 'ru',
    'format' => 'plain',
    'options' => 1,
);
$curlObject = curl_init();
curl_setopt($curlObject, CURLOPT_URL, 'https://translate.api.cloud.yandex.net/translate/v2/translate');
curl_setopt($curlObject, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlObject, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlObject, CURLOPT_POST, true);
curl_setopt($curlObject, CURLOPT_POSTFIELDS, http_build_query($data,'','&'));
curl_setopt($curlObject, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($curlObject);
curl_close($curlObject);
if ($responseData === false) {
    throw new Exception('Response false');
}
$data = json_decode($responseData, true);
$data_ru = $data['text'][0];```
→ Ссылка