![]() |
Данные с 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>" =)) __________________________________________________ __________ |
Ответ: Данные с icq.com
Ну так если все работает, то чего спрашиваешь?
|
Ответ: Данные с 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. как сюда код парсера вставить никак непойму:( |
Ответ: Данные с icq.com
Парсить в таком случае нужно строку htmlBody (после вызова htmlBody := GetHttpResponse(conn);).
Вообще со стандартным HTTP в MP бывают глюки, вроде-бы HTTP запросы лучше реализованы в Lib_proweb (сам не пользовался). |
Ответ: Данные с icq.com
Цитата:
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. Получил весь текст в одной строке лишнее че-то не убирается:( |
Часовой пояс GMT +4, время: 05:26. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot