Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167

Выдернуть перевод с translate.google + просьба предложить идеи

11.12.2015, 17:35. Показов 2262. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, читаю сейчас Foundations of Python Network Programming. Книжка хорошая. Читать трудновато, конечно, из-за того, что языком я владею не оч хорошо, только изучаю его, но вроде как прочитал 8 глав и почти всё понял. Проблема в том, что читаю довольно медленно по понятным причинам и там в основном только теория. У меня в планах есть веб-проект один, а для его реализации нужно много знать и уметь. Короче проблема в том, что нет почти никакой практики. Я понимаю, что нужно писать и писать, что теория на начальном этапе только на втором месте, но у меня нет совершенно никаких идей, что можно написать. Были идеи - я их реализовал, а теперь вот вообще ничего в голову не идет.

Какие идеи реализовал (по порядку):
1) Простенький калькулятор.
2) Простенький блэк-джек.
3) Прога, добавляющая к другим программам, которые получают начальные данные из консоли и выводят полученный результат в консоль, графический интерфейс, чтобы гипотетический юзер мог вводить данные и расставлять нужные флажки через ги и получать результат в окне ги.
4) Прога с ги для загрузки/выгрузки на ftp-сервер файлов и каталогов (с простеньким файловым менеджером, чтобы можно было просматривать файлы и каталоги на сервере).

Я читаю сейчас много и чем больше читаю, тем больше понимаю, что нужно что-то писать, иначе мозги просто преют. Информации поступает много, а выхлопа с этой информации мало. При этом я понимаю, что всё, что я сейчас читаю, мне пригодится. В общем, нужны идеи - идеи прог, которые можно писать параллельно с чтением, чтобы не терять навыки.

Мои идеи таковы:
1) Сейчас прочитаю про smtp, pop, imap и попробую написать почтовый клиент, чтобы можно было писать простые письма, письма с вложениями, удалять их и прочее.
2) Так как читаю много и стараюсь читать книги на инглише, постоянно нужно искать перевод каких-то слов. Использую для этого translate.google, так как он дает много вариантов перевода + для каждого слова примеры использования. У меня есть текстовый файл, в который я всё это копирую - само слово + несколько переводов (ведь в инглише часто одно и то же слово может быть и глаголом, и существительным и тд) + парочка примеров использования. Каждый раз мне приходится вводить слово и всё это дело отдельно копировать и вставлять в документ. Хочу написать что-то вроде виджета, который будет постоянно висеть открытым - я ввожу слово, он показывает перевод - я нажимаю сохранить и он сам всё это дело копирует в мой файл, сам всё выравнивает и тп. Проблема в том, что я не знаю, как можно выдернуть перевод. У гугла все запросы на перевод выглядят вот так
https://translate.google.com/#en/ru/hello - просто слово в конце меняется и всё.
Я думал, что тут всё просто - нужное слово менять в URL и отправлять обычный get запрос, принимать html-страницу, анализировать её, выдергивать нужные слова и всё. Ага, разбежался.
Когда я отправляю запрос, используя request, он возвращает мне что-то очень сложное и не понятное. Подскажите, как нужно правильно сделать, чтобы можно было получить перевод + примеры использования.


+ Как уже сказал, прошу поделиться вашими идеями программ. Что-то не очень сложное, но и не очень тривиальное. Желательно, что-то связанное с сокетами, хотя пойдет любая интересная задумка.

Добавлено через 23 минуты
Хотя сейчас я понимаю, что, если бы я мог просто получить html-страницу с переводом, то это бы означало, что у гугла для каждого слова своя отдельная html-страница, что явно не так. Там видимо какой-то скрипт срабатывает, который ищет слово в базе, а потом возвращает перевод и страница даже не обновляется целиком. Просто я новичок в этом, нифига пока не знаю. Есть простой способ как-то получить перевод?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2015, 17:35
Ответы с готовыми решениями:

Запрос на перевод в translate.google.ru
Делаю запрос на перевод слов в гугл переводчик. string met = "http://translate.google.ru/?sl=" + SL + "&tl=" + DL +...

Автоматический перевод через google.translate
Нужен скрипт который автоматические (через google.translate.ru не через API или Yandex) переводит тексты из таблиц в базе данных и выводит...

Переводить слово в google translate и выводить перевод в Edit?
Как написать программу которая будет брать слово на английском из Edit1 и переводить его в google translate и перевод вставлять в Edit2?

7
1 / 1 / 1
Регистрация: 08.12.2015
Сообщений: 13
11.12.2015, 18:46
В непонятных ситуациях - пиши игры.
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
11.12.2015, 19:05  [ТС]
Я так понимаю, что без знания хотя бы pygame, я ничего серьёзнее того же блэкджека все равно не напишу, а изучать пайгейм сейчас нету ни желания, ни времени. Хотя игры - это конечно интересно. Потом как-нибудь сяду изучать C++. Тем более что нарыл книгу по плюсам в контексте Unreal Engine 4 ) хочется какую-то прошу написать. Вот этот переводчик был бы мне полезен, но вот хз как это сделать с моими текущими знаниями
0
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
11.12.2015, 20:15
selenium в помощь
1
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
12.12.2015, 13:47  [ТС]
вроде бы то что нужно. Погляжу повнимательнее

Добавлено через 9 часов 53 минуты
да, это оказалось именно то, что нужно. Покопался немного и теперь могу получить и перевод, и примеры, но есть одно но: я могу получить любое содержимое, которое изначально отображается на странице, но у некоторых слов так много переводов, что часть из них скрывается и нужно нажать на стрелочку, чтобы отобразились все варианты. И я не знаю, как получить скрытые элементы.

Если вкратце:
Все варианты перевода в разметке представлены в виде таблицы (table). Каждый вариант - в виде строки (tr). Элементы, которые изначально скрыты, дополнительно обернуты в div. Я могу видеть скрытые элементы, могу получить их значения, но все значения равны пустой строке. Я пытался как-то нажать на эту стрелку, чтобы показать скрытые переводы, но эта фигня сама по себе не кнопка, а что-то непонятное для меня. Вот так эта штука выглядит:
HTML5
1
2
3
4
<div class='cd-expand-button' style>
  <span class='jfk-button-img'></span>
  <span class='cd-expand-label'>Другие варианты (25)</span>
</div>
Как мне ее нажать?
Я пробовал применить click, send_keys к целому диву, к спэнам отдельно - ничего не работает.

Код пока такой. Пришлось написать так, чтобы скрытые элементы игнорировались, иначе всё съезжает.
Кликните здесь для просмотра всего текста

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from selenium import webdriver
import time
 
driver = webdriver.Chrome('C:/Users/SC/Downloads/chromedriver.exe')
 
driver.get('https://translate.google.com')
driver.find_element_by_id('source').send_keys('corresponding')  # искомое слово
driver.find_element_by_id('gt-submit').click()
while True:
    try:
        translation = driver.find_element_by_class_name('hps')
        break
    except:
        time.sleep(0.1)
 
print(translation.text) # перевод, который появляется в правом окошке
 
translations = driver.find_element_by_class_name('gt-baf-table')
items = translations.find_elements_by_tag_name('tr')
for item in items:
    wrap = item.find_elements_by_class_name('gt-card-expand-wrapper')
    if not wrap:
        try:
            label = item.find_element_by_class_name('gt-cd-pos').text
            print('\n' + label)
        except:
            var = item.find_element_by_class_name('gt-baf-word-clickable').text
            syns = item.find_element_by_class_name('gt-baf-translations').text
            print('\t' + var + ' | ' + syns)
 
print('\n' + '=' * 60 + '\n')
 
examples_section = driver.find_element_by_class_name('gt-cd-md')
examples = examples_section.find_element_by_class_name('gt-cd-c')
labels = examples.find_elements_by_class_name('gt-cd-pos')
items = examples.find_elements_by_class_name('gt-def-list')
items_dict = {}
for i in range(len(labels)):
    info_list = items[i].find_elements_by_class_name('gt-def-info')
    info_list = [info for info in info_list if info.is_displayed()]
    items_dict[labels[i].text] = [info.text.split('\n')[:-1]
        if len(info.text.split('\n')) != 2 else info.text.split('\n')
        for info in info_list]
 
for item in items_dict:
    print(item + '\n\t' + '\n\n\t'.join(['\n\t'.join(i)
        for i in items_dict[item]]), end='\n\n')
 
driver.close()


Вот, например, вывод слова corresponding
Кликните здесь для просмотра всего текста

соответствующий

имя прилагательное
соответствующий | corresponding, appropriate, suitable, fit, adequate,
соответственный | respective, corresponding, accordant, correspondent, ,
подобный | like, similar, alike, corresponding, another, parallel
ведущий переписку | corresponding

======================================== ====================

глагол
have a close similarity; match or agree almost exactly.
the carved heads described in the poem correspond to those in the drawing

communicate by exchanging letters.
Margaret corresponded with him until his death

имя прилагательное
similar in character, form, or function.
we discussed our corresponding viewpoints

dealing with written communication; having this responsibility.
the corresponding secretary



А вот вывод слова frame, у которого куча скрытых элементов
Кликните здесь для просмотра всего текста

Рамка

имя существительное
рамка | frame, cadre
кадр | frame, shot, still, cadre
рама | frame, rack, chassis, framework, cradle, carriage
каркас | frame, framework, carcass, skeleton, shell, rack
структура | structure, framework, pattern, composition, frame, texture
оправа | rim, frame, setting, mount, mounting, casing
система | system, scheme, frame, method, setup, chain
конструкция | design, construction, structure, construct, frame, framework
остов | skeleton, frame, framework, body, shell, carcass
станина | bed, frame, stand, body, housing, bedplate
тело | body, flesh, solid, frame, figure, corpus

имя прилагательное
рамочный | frame

======================================== ====================

глагол
place (a picture or photograph) in a frame.
he had the photo framed

имя существительное
a rigid structure that surrounds or encloses something such as a door or window.
His mother stood in the frame of the kitchen door, hands on her hips and a grim expression on her face.

a structural environment within which a class of words or other linguistic units can be correctly used. For example I —— him is a frame for a large class of transitive verbs.
Correct capitalization could help German readers extract the structural frame of a sentence.



Подскажите плз, как получить скрытые варианты.

Чтобы не пришлось искать вам - вот как эти слова выглядят на сайте
https://translate.google.com/#en/ru/frame
https://translate.google.com/#en/ru/corresponding

Ну то есть, как видите, все видимые варианты я получил. Остальное - нет
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.12.2015, 17:48
гляньте вот это вот https://github.com/jjangsangy/py-translate .
0
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167
13.12.2015, 18:14  [ТС]
спасибо, но я уже написал свою прогу ) пришлось делать без скрытых слов. Но мои нужды удовлетворяет полностью )
0
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
14.12.2015, 02:12
возьмите адон WebDriver Element для firefox, он поможет понять что же кликать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2015, 02:12
Помогаю со студенческими работами здесь

Как с post или get запроса получить перевод текста с Google Translate
как с помощью post или get запроса получить перевод текста с Google Translate?

Как в HTML реализовать такой перевод от слова к слову что главное с выделением как в Google Translate ?
То есть мне надо чтобы при наведении на русское слово отображался перевод на английском И наоборот при наведении на английское слово...

Предложить идеи на минимизацию затрат предприятия
Задача: Необходимо автоматизировать торговое предприятие имеющее магазины в каждом районе города, и центральный офис совмещенный со...

Просьба посмотреть код и предложить корректный вариант
Добрый день! Решил путем проб и ошибок задачу, но решение кошмарное и не устраивает. Хочется взглянуть на нормальный код, подозреваю,...

Просьба дать идеи для проекта
Всем привет, достаточно странная просьба. Нужно на c++ за полгода в вузе сделать проект. Направление пми, накидайте тем пожалуйста, а то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru