web запросы

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

web запросы

Сообщение Sector » 11.12.2008 (Чт) 18:10

не вполне уверен, что топично:
есть такой сайт http://www.ilm.ee/tallinn
там ввиде картинки публикуется текущая температура.
ссылка на картинку динамическая.
вопрос как мне её поиметь

пытался делать примерно так:
Код: Выделить всё
    Dim m_URL As String = "http://www.ilm.ee/tallinn"
        Dim theURL As New Uri(m_URL)
        Dim theRequest As Net.WebRequest
        Dim location As Integer
        theRequest = Net.WebRequest.Create(theURL)
        Dim theResponse As Net.WebResponse
        Dim theData As String = ""
     
            theResponse = theRequest.GetResponse
            Dim aReader As New IO.StreamReader(theResponse.GetResponseStream())
           
            Do  ' здесь не могу ничего придумать как тупо найти ссылку на картинку
                theData = aReader.ReadLine
                lacation = theData.IndexOf("Temperatuur<br />")

            Loop While lacation = -1
            Dim imgaddres As String
            imgaddres = aReader.ReadLine ' и даже нахожу ...........


            Dim nac As Integer
            Dim kon As Integer
            nac = imgaddres.IndexOf("/images/")
            kon = imgaddres.IndexOf(";cache=0") + 8
            imgaddres = imgaddres.Substring(nac, kon - nac)
            imgaddres = imgaddres.Replace(";", "&")
            Dim arrAs As Byte()
            Dim ddd As New Net.WebClient
            Dim instance As New System.Drawing.ImageConverter

            'ddd.DownloadFile("http://www.ilm.ee" + imgaddres, "C:/test.jpg") '...... но это не она
            arrAs = ddd.DownloadData("http://www.ilm.ee" + imgaddres)
            img1 = instance.ConvertFrom(arrAs) ' обьявлено ранее


            aReader.Close()

     



код меняется "на лету" со старого работоспособного со старой версии сайта, извините за сумбур


Как же делает типичный браузер показывая мне картинку?
Если там каждый раз генерируется новая ссылка на картинку, то мой подход вообще тупиковый, а уж порочный изначально

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: web запросы

Сообщение Williams » 11.12.2008 (Чт) 19:46

Возможно тебе пригодятся "регулярные выражения"
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: web запросы

Сообщение MIT » 11.12.2008 (Чт) 21:35

Возможно тебе пригодятся мои
www_ilm_ee.rar
наработки
(41.54 Кб) Скачиваний: 49
Картинка скачивается, правда я не уверен что правильная :D . Посмотри, может доделаешь, там сложного ничего нет.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: web запросы

Сообщение Sector » 12.12.2008 (Пт) 0:04

спасибо, за оперативность. К сожалению не работает. Вроде и ссылка на картинку такая же, но выдает сервер не то. Главная проблема в том, что при просмотре в браузере, мы видим результат, скажем "1" на странице, при попытке получить картинку по ссылке, получаем бред. В третьей опере при внесении в адресную строку ссылки на картинку, иногда выдает ее, (один первый раз, а последующие три тире вместо нее), либо три тире вместо нее. Я не особо разбираюсь в веб программировании, поэтому я и спрашивал как заполучить картинку с конкретного сервера. Как я рассуждал: при запросе сервер выдает код для браузера со всеми ссылками на картинки, мы берем нужную и вот она картинка, но что то не хочет сервер отдавать нужную картинку.

Изображение

Прошу прощения, что первый раз криво объяснил.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: web запросы

Сообщение iGrok » 12.12.2008 (Пт) 3:15

Забей.

Картинку отдаёт php-скрипт. Среди параметров явно есть какой-то идентификатор.
id=0fa475530d9583c34fd356ef571bdb87d30986933d170370968f40ddb
Он каждый раз меняется. Возможно, это ID текущей сессии, формирующийся при открытии в браузере сайта.. И картинку скрипт по этому id отдаст только один раз. (это ИМХО. т.е. я бы делал именно так, если бы хотел поставить подобную защиту)

Так что забей. Либо эмулируй браузер от и до. =)
Но проще будет найти другой погодный ресурс, на котором не стоит такая безумная защита данных. =)
Их вроде не так уж и мало. =)
label:
cli
jmp label

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: web запросы

Сообщение Sector » 12.12.2008 (Пт) 3:55

Вот тут мы начинаем побираться к истине, мой код, а также пример уважаемого MIT делают одно и то же - получают с сервера разметку для страницы со всеми ссылками и уникальными индификаторами для данной сессии. Успешно попарсив его обнаруживаем ссылку на картинку. По запросу получаем шиш. Существуют ли стандартные для веб программирования решения о обнаружении "небраузера". Ну например в качестве предположения: не отдавать картинку пока IP не запросит баннер. Или опытному взгляду это видно из htmlа?
Спасибо iGrok за совет, просто интересно стало картинку уволочь. На одной из моих программ для клиента в качестве бонуса, выводилась текущая погода со старой версии сайта. В принципе на функциональность той программы это не влияет, но хочется обьехать, "на кривой кобыле" "жадных" веб мастеров.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: web запросы

Сообщение Williams » 12.12.2008 (Пт) 10:48

Sector писал(а):Вот тут мы начинаем побираться к истине, мой код, а также пример уважаемого MIT делают одно и то же - получают с сервера разметку для страницы со всеми ссылками и уникальными индификаторами для данной сессии. Успешно попарсив его обнаруживаем ссылку на картинку. По запросу получаем шиш. Существуют ли стандартные для веб программирования решения о обнаружении "небраузера". Ну например в качестве предположения: не отдавать картинку пока IP не запросит баннер. Или опытному взгляду это видно из htmlа?
Спасибо iGrok за совет, просто интересно стало картинку уволочь. На одной из моих программ для клиента в качестве бонуса, выводилась текущая погода со старой версии сайта. В принципе на функциональность той программы это не влияет, но хочется обьехать, "на кривой кобыле" "жадных" веб мастеров.


Referer, User-Agent в порядке?
И вы думаете, что вас оставят в живых после прочтения этого поста?

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: web запросы

Сообщение Sector » 12.12.2008 (Пт) 17:34

Referer проверялся тщательно, User-Agent подставлял даже от мобильника с мини-оперой, но надо просто было разуть глаза.


Ларчик открывался просто: не верно ловилась ссылка:
"/images/2008/pildifunc.php?mis=temp&amp;kus=tallinn&amp;taust=transparent&amp;loust=333333&amp;s=13.5&amp;f=arialbd&amp;id=c522828731f1a016bfa72c073262a2b12b6210c9e42907a4dfffc8ed6&amp;cache=0"

что там за вставки amp; я не знаю но GET должен оправляться без них. Для данного примера вот так:
"/images/2008/pildifunc.php?mis=temp&kus=tallinn&taust=transparent&loust=333333&s=13.5&f=arialbd&id=c522828731f1a016bfa72c073262a2b12b6210c9e42907a4dfffc8ed6&cache=0"

Спасибо всем кто откликнулся.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: web запросы

Сообщение MIT » 12.12.2008 (Пт) 22:53

Хотелось бы добавить, что подобные защиты обращают внимание и на куки, учитывай это.
А "&amp;" в переводе на нормальный язык - амперсант, т.е. знак "&"
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Sector
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 26.10.2004 (Вт) 14:43

Re: web запросы

Сообщение Sector » 13.12.2008 (Сб) 1:40

Спасибо, понятно, что &amp; имеет отношение к амперсанду :P. Мне не понятно ( я плохо знаком с веб программированием ) почему сервер выдает строку с явно выраженными вставками. И не принимает запрос такой же, с теми же вставками. Для разделения ответа по символам? Если понадобится кому-то? Тогда почему не достаточно только символа амперсанда? Или получается, что есть два амперсанда один в виде символа другой с доп. выражением. Это же не азбука морзе, где потери символов возможны. Или это тяжкое наследие старых версии соглашении html php или еще чего там.

P.S. А кукисы я конечно тоже проверял в первую очередь.


Спасибо еще раз всем за участие.

P.S. "Пока верстался номер..."
Бегло пробегая по просторам интернетов, выяснил, что амперсанд явно выделяют, сие есть особенность PHP.

"... и незачем так кричать.." (C) какой-то мультик
Последний раз редактировалось Sector 13.12.2008 (Сб) 1:51, всего редактировалось 1 раз.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: web запросы

Сообщение Williams » 13.12.2008 (Сб) 1:44

Все дело в том, что преобразование "&amp;" лежит на совести браузера.
И вы думаете, что вас оставят в живых после прочтения этого поста?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: web запросы

Сообщение iGrok » 13.12.2008 (Сб) 2:38

Зря пример не посмотрел - не знал, как вы страницу парсите. )
Ну да, если целиком ответ сервера самому обрабатывать - то эту картинку получить реально. Хотя это и геморно.
Ну и не забудь, что владельцы сервера могут ещё разок сменить алгоритм отображения. =)
Хотя нафига им это делать - вообще не понятно. =)

Небольшое замечание:
Sector писал(а):Бегло пробегая по просторам интернетов, выяснил, что амперсанд явно выделяют, сие есть особенность PHP.

Сие не есть особенность PHP.
label:
cli
jmp label


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 1

    TopList