Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2011, 19:19
Pcrepair
 
Сообщения: n/a
По умолчанию idHTTP1 и закачка стр. из ЯНДЕКС.ру

Добрый день
Есть компонент idHTTP1, с помощью которого можно закачать код ХТМЛ-страницы, указав УРЛ страницы. В общем все работает (кроме фреймов, сайтов с редиректом, и есть проблемы со шрифтами)
НО, если задать адрес Ya.ru, выскакивает 301 ошибка и страница сервиса не загружается.
Вопрос для знатоков ИНДИ 10 (РАД2010):
1. если предварительно отослать запрос (через POST ввести словосочетание для поиска, ну скажем "купить телевизор") в строку ввода поиска на Яндексе, получится ли закачать первую страницу ответа Яндекса? Или всетаки нужно это делать через ТВебБраузер?
2. что то страницы с отдельных сайтов закакчиваются с кракозябрами, или вообще тексты с кириллицей не закачиваются, закачиваются только то что написано латиницей. С этим что то сделать можно? Если можно, то как?
Всем ответившим по делу спасибо.
Ответить с цитированием
  #2  
Старый 26.12.2011, 08:46
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

- IdHTTP1.HandleRedirects:=True;
- :=UTF8Decode(IdHTTP1.Get(''));
- да, вернется первая страница результатов поиска
- фреймы нужно запрашивать отдельно (разбирать страницу). это уже HTML, а не HTTP
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 26.12.2011, 16:43
Pcrepair
 
Сообщения: n/a
По умолчанию

NumLock, спасибо
еще вопрос
что лучше с точки зрения неполучения бана по ИП-адресу от поисковой системы
- использовать стандартный метод (ПОСТ) для вставки словосочетания в строку запроса ПС
или так
- http://yandex.ru/yandsearch?text=%EA... %E8%E7%EE%F0
конечно если кто в курсе
Ответить с цитированием
  #4  
Старый 26.12.2011, 16:53
Pcrepair
 
Сообщения: n/a
По умолчанию

Дополнительно
:=UTF8Decode(IdHTTP1.Get('')); - не работает
так же как и System.Utf8ToAnsi(IdHTTP1.Get(''));, причем одинаково
к примеру на http://forums.kuban.ru вообще кириллицу не грузит, пустые места вместо букв, зато латиница в норме
в других случаях грузит каркозябры
Ответить с цитированием
  #5  
Старый 26.12.2011, 17:25
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Как я вижу, используется RAD Studio 2010. У него Unicode включен по умолчанию. Так что тут, в случае с кракозябрами, стоит преобразовывать строку наоборот: UTF8Encode.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #6  
Старый 26.12.2011, 17:54
Pcrepair
 
Сообщения: n/a
По умолчанию

Результаты:
если использовать
Код:
Memo1.Text := IdHttp1.Get(text);
, то вместо кириллицы идут i"?i^n~i`i^o`? и все такое
если использовать
Код:
Memo1.Text := UTF8Encode(IdHttp1.Get(text));
то кириллицы нет вообще, это результат для контрольного сайта
http://delphiexpert.ru/view_download.php?id=112
Что бы это все значило?
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:05.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025