Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2010, 16:09   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Слиент Google Translate для зачёта

Доброго времени суток. Я тут повозмущаться решил.

Короче, стучится ко мне в аську студент постучал, прогу написать надо для зачёта. Суть такова, написать прогу которая будет брать из одной папки текстовые файлы, переводить их через Google переводчик и сохранять перевод в другой папке. На там ещё небольшие заморочки с многопоточностью и пр. роли не играют.
Кроче взялся. Ну а что в принципе, ничего сложного на первый взгляд нету. Вооружился информацией из этой темы и в бой. Так ведь дело в том, что гугл как раз запрещает делать такие вещи. От отвечает на запрос, только ели запрос от браузера. А если от программы, т.е. просто через IdHTTP, то он возвращает какую-то хрень

Гуглил и нашёл что такие вещи уже делать пытались, но неукого толком ничего не получилось. А если и получалось, то на время, в гугле меняют свою "систему защиты". С прокси IdHTTP вообще зависает.

Короче вопрос, это нормально студенту такое задание дать?
Altera вне форума Ответить с цитированием
Старый 24.12.2010, 16:19   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Короче вопрос, это нормально студенту такое задание дать?
Да. Только мне подсказывает внутренний голос, что переводчик не именно Google Translate нужен
BOBAH13 вне форума Ответить с цитированием
Старый 24.12.2010, 16:20   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Может, задание в том и заключалось: взломать защиту Гугла.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.12.2010, 16:33   #4
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

почему же не нормально?
Vikenty вне форума Ответить с цитированием
Старый 24.12.2010, 16:42   #5
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Да нет, переводчик именно Google-овский. Да тут дело смотрите в чём. Если бы гуглу было бы по барабану, как ихним переводчиком пользуются, то тогда всё было бы просто. Но ведь в программисты гугла специально работают в том направлении что бы нельзя было бы так делать. Получается что студента выставили соревноваться с программистами гугла. Или я не прав...?
Altera вне форума Ответить с цитированием
Старый 24.12.2010, 16:54   #6
misher
Участник клуба
 
Аватар для misher
 
Регистрация: 26.05.2010
Сообщений: 1,648
По умолчанию

Цитата:
Или я не прав...?
Правы!
Цитата:
Короче вопрос, это нормально студенту такое задание дать?
Может преподу кто-то такое задание дал, так он через студентов?
Цитата:
Может, задание в том и заключалось: взломать защиту Гугла.
+1
This world will never be What I expected (c)
misher вне форума Ответить с цитированием
Старый 24.12.2010, 16:55   #7
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Если язык можно выбирать, то
python
Код:
>>> def translate(text,langpair):
...     import urllib
...     import simplejson
... 
...     query = urllib.urlencode({'q' : text.encode("utf-8"),'langpair':langpair})
...     url = u'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&%s'.encode("utf-8") \
...       % (query)
...     search_results = urllib.urlopen(url)
...     json = simplejson.loads(search_results.read())
...     mess = json['responseData']['translatedText']
...     return mess
>>> print translate("I love python","en|ru")
Я люблю Python
>>>
Позаимствовано отсюда: http://tilarids.blogspot.com/2008/06...slate-api.html
Юзается Google Translate API
Levsha100 вне форума Ответить с цитированием
Старый 24.12.2010, 17:50   #8
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Как компромис, можно сделать 0х0 px компонент браузера и оттуда вытаскивать регулярками нужную инфу.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 24.12.2010, 18:49   #9
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Насколько я знаю есть плагин для QIP infium что бы с переводчиком гугла работать
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 25.12.2010, 06:15   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Levsha100 Посмотреть сообщение
Если язык можно выбирать, то
python
Код:
>>> def translate(text,langpair):
...     import urllib
...     import simplejson
... 
...     query = urllib.urlencode({'q' : text.encode("utf-8"),'langpair':langpair})
...     url = u'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&%s'.encode("utf-8") \
...       % (query)
...     search_results = urllib.urlopen(url)
...     json = simplejson.loads(search_results.read())
...     mess = json['responseData']['translatedText']
...     return mess
>>> print translate("I love python","en|ru")
Я люблю Python
>>>
Позаимствовано отсюда: http://tilarids.blogspot.com/2008/06...slate-api.html
Юзается Google Translate API

Делаю на Delphi, не получается...

Код:
function bildAddresLine(text: ansistring): ansistring;
begin
  result := 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&'+
  'q='+httpencode(text)+'&langpair='+lng1+'|'+lng2;
end;

function httpencode(text: ansistring): ansistring;
var
  i: word;
  l: word;
begin
  l := length(text);

  for i := 1 to l do
    result := result + '%' + format('%x', [ord(text[i])]);
end;


...
    URI := bildAddresLine(inputText);

    try
      //curIdHTTP := createNewIdHTTP;
      curIdHTTP := TIdHttp.Create(nil);
      outputText := curIdHTTP.Get(URI);
      //outputText := inputText;
      toLog(pChar(outputText));
    finally
      curIdHTTP.Free;
    end;
...
Возвращает сдледующее
Цитата:
Сообщение от Input.txt
Насколько я знаю есть плагин для QIP infium что бы с переводчиком гугла работать
Цитата:
Сообщение от Output.txt
{"responseData": {"translatedText":"QIP infium"}, "responseDetails": null, "responseStatus": 200} ) % ° 2 {"responseData": {"translatedText":"QIP infium"}, "responseDetails": null,
И что дальше? Может httpencode неправильно написана, или что?

--------------------------------

Ага, пожалуйста!

Код:
    try
      //curIdHTTP := createNewIdHTTP;
      curIdHTTP := TIdHttp.Create(nil);
      //outputText := curIdHTTP.Get(URI);
      curIdHTTP.Get(URI, outputStream);
      //outputText := inputText;
      toLog(pChar(outputText));
    finally
      curIdHTTP.Free;
    end;
Цитата:
Сообщение от Input.txt
Насколько я знаю есть плагин для аськи что бы с переводчиком гугла работать
Цитата:
Сообщение от Output.txt
{"responseData": {"translatedText":""}, "responseDetails": null, "responseStatus": 200}
И http прокси тоже не помогают.

Последний раз редактировалось Altera; 25.12.2010 в 06:20.
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IdHTTP и Google, Ошибка при запросе к серверу google s2dent Общие вопросы C/C++ 0 28.09.2010 19:47
Корректный запрос (заголовки) к translate.google.ru theYozh Работа с сетью в Delphi 1 02.01.2010 14:25
Парсинг translate.ru Sianukvil PHP 10 29.12.2009 22:44
как сделать запрос к translate.google... Crystal_Ra Работа с сетью в Delphi 1 19.07.2009 23:53
Помогите с заданием для зачёта! RatwielleR Помощь студентам 4 15.01.2007 16:02