|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
19.12.2009, 23:38 | #1 |
Регистрация: 19.12.2009
Сообщений: 5
|
Парсинг translate.ru
Добрый вечер, ребята!
Нужна ваша помощь: нужно написать парсер перевода на сайте translate.ru, но я не могу ссобразить, как... Итак, постараюсь объяснить. Откроем исходный код индексной страницы(для нумерации строк открою в Dreamweaver): - строка 40 : <form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm"> (тут все ясно: переменные методом post отправляются сценарию Default.aspx) - строка 553 : <textarea name="ctl00$SiteContent$MA_trasnlfo rm$sourceText" rows="2" cols="20" id="ctl00_SiteContent_MA_trasnlform _sourceText" title="Введите или скопируйте текст для перевода" class="rwin" onkeyup="textLimit();" onchange="textLimit();" onSelect="captureRefers();" onfocus="pasteText(this);" onblur="blurText(this);" onkeypress="return ctrl_enter(event, this.form);">text</textarea> (область для ввода исходного текста. Немного смущает имя...) - строка 629 : <input type="submit" name="ctl00$SiteContent$MA_trasnlfo rm$bTranslate" value="Перевести" onclick="if(!checkST())return false;WebForm_DoPostBackWithOptions (new WebForm_PostBackOptions("ctl00 $SiteContent$MA_trasnlform$bTransla te", "", false, "", "/Default.aspx/Text", false, false))" id="ctl00_SiteContent_MA_trasnlform _bTranslate" class="translit" title="[Ctrl]+[Enter]" /> (кнопка, при нажатии на которую, выполняется ряд не совсем понятных мне ф-ий) Итак, я хочу получить следущий результат: вводим в скрипт на php url, нечто типа http://translate.ru/default.aspx?text=текстДляПеревода и парсим перевод. Вся загвоздка именно в передаче post-переменной методом get: ничего не работает(к примеру, http://translate.ru/default.aspx?ctl00$SiteContent$MA_t rasnlform$sourceText=текстДляПерево да(я говорил про это нехорошее имя)). Короче, я думаю вы поняли, чего я хочу. Ссори за длинный пост, за отнятое время, но прошу помочь... ЗЫ С asp я не очень, только php, поэтому, если проблема заключается только в незнании каких-то ньюансов технологии, сильно не матюкайте.. |
21.12.2009, 10:30 | #2 | |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Последний раз редактировалось ssdm; 21.12.2009 в 10:40. |
|
21.12.2009, 10:38 | #3 |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
http://webi.ru/webi_articles/6_7_f.html
Вторая часть статьи должна помочь. А именно: Код:
Последний раз редактировалось ssdm; 21.12.2009 в 10:54. |
21.12.2009, 11:22 | #4 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,714
|
asp учитывает тип браузера клиента и большинство переменных окружения - те ваш бот должен "тащить" все переменные окружения
Стрелок-охотник
|
21.12.2009, 15:15 | #5 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,714
|
Кстати в такой же ситуации как у вас(у меня было посложнее), я пришел к выводу что надо писать бота на Delphi и написал вообщем-то.
Стрелок-охотник
|
21.12.2009, 22:02 | #6 |
Регистрация: 19.12.2009
Сообщений: 5
|
ssdm, mv28jam, спасибо за ответы. Короче нужно сформировать post-запрос, отправить на сервер, считать результат....Теперь не знаю, как корректно сформировать запрос, т.к. через форму отправляется миллион непонятных переменных. поэтому вопрос - можно ли каким-либо образом выковырнуть из браузера или откуда-то еще примерный запрос, на основе которого можно будет сформировать свой. Поверхностно погуглил на эту тему - ничего вразумительного не нашел...
Насчет переменных окружения...если честно, сложновато для меня. Наверное, сначала попробую все варианты с простой отправкой запросов, если не получится, будем изучать... И еще : PHP код:
Отправка одной переменной ctl00$SiteContent$MA_trasnlfo rm$sourceText с каким-нибудь значением методом, описанным на webi.ru не работает... Много всего понаписал, поэтому главная мысль: как узнать, какой запрос формирует браузер для отправки на сервер? |
22.12.2009, 00:27 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.12.2009, 19:13 | #8 |
Регистрация: 19.12.2009
Сообщений: 5
|
Пепел Феникса, спасибо.
Запрос вытянул. При отправке на сервер, он возвращает 200 код, т.е. ОК. Но вместо html-кода появляются краказябры:
Пытался изменить кодировку вывода ф-ией iconv() - не помогло Скажите, как исправить... |
25.12.2009, 08:36 | #9 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,714
|
ASP понимает что ваш бот не браузер! Поэтому вы и получаете ошибку. Ваш бот должен иметь все признаки браузера - те как минимум тащить за собой все переменные окружения и сторить полные header'ы.
90% что создатели сайта специально сделали защиту от ботов.
Стрелок-охотник
|
29.12.2009, 20:34 | #10 |
Регистрация: 19.12.2009
Сообщений: 5
|
Все ясно... изучил другие варианты - не устроили, придется писать бота. Не буду создавать новую тему, а спрошу здесь: mv28jam, не подскажите, как в Дельфях передать эти самые переменные окружения на сервер, чтоб он(сервер) корректно мог их использовать. Если можно, напишите источник информации, который вы использовали при написании вышеупомянутого бота...с остальным, думаю, разберусь сам. Зараннее спасибо!
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать запрос к translate.google... | Crystal_Ra | Работа с сетью в Delphi | 1 | 19.07.2009 23:53 |
парсинг Html | eldar | Общие вопросы Delphi | 4 | 23.04.2009 20:42 |
Парсинг строки | beemoto | Общие вопросы Delphi | 18 | 12.04.2009 18:52 |
Парсинг страницы | Terikon | Общие вопросы Delphi | 3 | 04.04.2009 00:32 |