Перевод через 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
→ Ссылка
- Купить api и пользоваться ими как белый человек. У Google вроде даже есть бесплатный лимит на их GCP.
- Если прикрыли 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];```