Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 23.04.2010, 19:02   #1
Freez
Оператор ЭВМ
 
Аватар для Freez
 
Регистрация: 19.09.2009
Сообщений: 43
Написано 8 полезных сообщений
(для 10 пользователей)
Данные с icq.com

Hарод подскажите пожалуйста простой пример получения строки nickname с http://www.icq.com/people/full_detai...php?uin=666666

Я имею в виду сделать запрос к странице пропарсить текст и вывести на экран только ник.Желательно исходник

по поводу парсинга есть такое мнение

Цитата
---------------------------------------------------
Var
I:Integer;
S:string;
Begin
i:=pos('Nickname',S);
if i<>0 do
Begin
S:=copy(S,i,Length(S));
i:=pos('flvl',S);
S:=copy(S,i,Length(S));
i:=pos('</div>',S);
S:=copy(S,7,i-7);
End;
End;
Как вариант можно сделать так. Прошу ногами сильно не пинать, какая первая мысль по поводу прасинга в голову пришла, так и сделал =)

Изначально в переменной S должен быть весь код страницы, после выполнения этого куска, там останится лишь Ник.

Пример рабочй проверял. Работать будет до тех пор пока не изменят структуру сайта. Ну или у человека не будетв нике "</div>" =))
__________________________________________________ __________
(Offline)
 
Ответить с цитированием
Старый 23.04.2010, 19:16   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Данные с icq.com

Ну так если все работает, то чего спрашиваешь?
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 23.04.2010, 19:22   #3
Freez
Оператор ЭВМ
 
Аватар для Freez
 
Регистрация: 19.09.2009
Сообщений: 43
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Данные с icq.com

То что парсинг работает я знаю
запрос страницы сделать и вывести на экран никак не получается

из файла справки узнал что

В MIDlet Pascal предусмотрен специальный тип переменных под названием http, который используется как идентификатор HTTP соединения. В приведенном ниже коде мидлет устанавливает связь и скачивает web-страничку из Интернета:

var conn : http;
htmlBody : string;
contentType : string;

begin
// Пытаемся установить соединение с сайтом www.icq.com
if not OpenHttp(conn, 'http://www.icq.com/people/full_details_show.php?uin=666666') then Halt;

// Задаем метод передачи данных (другие поддерживаемые методы - это HEAD и POST)
SetHttpMethod(conn, GET);

// Указываем название нашего браузера
AddHttpHeader(conn, 'User-agent', 'Opera Mini 9.25');

// Отсылаем HTTP запрос и проверяем код ответа (200 = OK)
if SendHttpMessage(conn) <> 200 then Halt;

// Скачиваем запрашиваемый файл (по-идее это index.html)
htmlBody := GetHttpResponse(conn);

// Читаем заголовок присланного файла
contentType := GetHttpHeader(conn, 'Content-type');

// Закрываем соединение
CloseHttp(conn);
end.

как сюда код парсера вставить никак непойму
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reks888 (23.04.2010)
Старый 23.04.2010, 19:42   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Данные с icq.com

Парсить в таком случае нужно строку htmlBody (после вызова htmlBody := GetHttpResponse(conn);).
Вообще со стандартным HTTP в MP бывают глюки, вроде-бы HTTP запросы лучше реализованы в Lib_proweb (сам не пользовался).
(Offline)
 
Ответить с цитированием
Старый 23.04.2010, 20:10   #5
Freez
Оператор ЭВМ
 
Аватар для Freez
 
Регистрация: 19.09.2009
Сообщений: 43
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Данные с icq.com

Сообщение от ViNT Посмотреть сообщение
Парсить в таком случае нужно строку htmlBody (после вызова htmlBody := GetHttpResponse(conn).
Вообще со стандартным HTTP в MP бывают глюки, вроде-бы HTTP запросы лучше реализованы в Lib_proweb (сам не пользовался).
var conn : http;
s : string;
contentType : string;
I:integer;

begin
// Пытаемся установить соединение с сайтом www.icq.com
if not OpenHttp(conn, 'http://www.icq.com/people/full_details_show.php?uin=666666') then Halt;

// Задаем метод передачи данных (другие поддерживаемые методы - это HEAD и POST)
SetHttpMethod(conn, get);

// Указываем название нашего браузера
AddHttpHeader(conn, 'User-agent', 'Opera Mini 9.25');

// Отсылаем HTTP запрос и проверяем код ответа (200 = OK)
if SendHttpMessage(conn) <> 200 then Halt;

// Скачиваем запрашиваемый файл (по-идее это index.html)
s := GetHttpResponse(conn);


DrawText( s , 0, 0);
repaint;
delay (9000);


end.

Получил весь текст в одной строке лишнее че-то не убирается

Последний раз редактировалось Freez, 23.04.2010 в 22:06.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:56.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com