WebBrowser. Крик души.

Личный блог местного доктора. Здесь даются бесплатные медицинские консультации, обсуждаются вопросы здравоохранения и конечно же, программирования.

Модератор: dr.MIG

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

WebBrowser. Крик души.

Сообщение dr.MIG » 17.07.2009 (Пт) 15:18

Хватит использовать WebBrowser для получения HTML-кода страницы, когда не стоит задача отображать страницу!

Хватит использовать WebBrowser для заполнения и отправки web-форм, когда не стоит задача их предварительно отображать!



Это ведь из разряда хранить промежуточные вычисления в невидимых TextBox'ах.

P.S. Самым простым способом решения этих двух задач будет использование WinHttpRequest.
Salus populi suprema lex

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: WebBrowser. Крик души.

Сообщение SLIM » 17.07.2009 (Пт) 20:29

Кто ж тебя так достал то?
Пишите жизнь на чистовик.....переписать не удастся.....

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: WebBrowser. Крик души.

Сообщение dr.MIG » 17.07.2009 (Пт) 20:30

Много подобных тем последнее время встречалось :).
Salus populi suprema lex

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 14.08.2009 (Пт) 6:10

dr.MIG писал(а):Хватит использовать WebBrowser для получения HTML-кода страницы, когда не стоит задача отображать страницу!
Хватит использовать WebBrowser для заполнения и отправки web-форм, когда не стоит задача их предварительно отображать!

P.S. Самым простым способом решения этих двух задач будет использование WinHttpRequest.

Можно примерчик для сайта http://www.graciafinal.com/
Интересуют данные допустим эти http://www.graciafinal.com/#db.monster.main.20492
WinHttpRequest не помог. Код на странице виден только после выделения, что и удалось выдернуть WebBrowser'ом.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: WebBrowser. Крик души.

Сообщение Proxy » 14.08.2009 (Пт) 19:39

%)
Причём тут выделение?))
Follow the white rabbit.

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 15.08.2009 (Сб) 7:57

Proxy писал(а):%)
Причём тут выделение?))

Читать умеем? Есть на HttpRequest пример для вышеприведённого сайта?
А крылатые фразы мы уже не раз разбирали, в поиск, причём тут вообще WebBrowser и т.д. это пустословие.

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

Re: WebBrowser. Крик души.

Сообщение iGrok » 15.08.2009 (Сб) 13:18

Proxy писал(а):Причём тут выделение?))

Выделение тут действительно ни при чём. Так что тут Proxy прав.

Но защита "от дурака" на сайте неплохая. Весь контент генерится "на лету" клиентскими скриптами (js).
Вытащить нужные данные при помощи WinHTTPRequest можно, но достаточно трудно.
WebBrowser'ом получится быстрее.
label:
cli
jmp label

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 15.08.2009 (Сб) 18:08

iGrok писал(а):
Proxy писал(а):Причём тут выделение?))

Выделение тут действительно ни при чём. Так что тут Proxy прав.

Но защита "от дурака" на сайте неплохая. Весь контент генерится "на лету" клиентскими скриптами (js).
Вытащить нужные данные при помощи WinHTTPRequest можно, но достаточно трудно.
WebBrowser'ом получится быстрее.

Вот...примерно этот ответ хотелось и услышать
и подобное утверждение
Хватит использовать WebBrowser для получения HTML-кода страницы, когда не стоит задача отображать страницу!...для этого есть WinHTTPRequest
как оказывается не всегда верно.

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

Re: WebBrowser. Крик души.

Сообщение iGrok » 15.08.2009 (Сб) 20:17

Greis писал(а):и подобное утверждение ... как оказывается не всегда верно.

Ну вот тут я с тобой всё-таки не соглашусь. Утверждение верно всегда.
Просто иногда за недостатком времени, умения, знаний либо чего-то ещё более простым оказывается использование для тех же целей WB.

А по-хорошему, надо расковыривать js-код на странице, чтобы выяснить какой именно запрос даёт тебе нужные данные. При помощи FireFox с его FireBug это сделать относительно просто.
Тогда даже не придётся парсить выданный HTML, потому что этот запрос отдаст тебе JSON:
Код: Выделить всё
{"id":"12503549719251",
"js":
{"status":{"status":"ok","dataType":"mixed","run_time":"0.0174231529236"},
  "result": {"mob_id":"20492", "name":"Kirunak's Guards", "level":"21", "sex":"0", "type":"warrior",
                "attackrange":"40", "attacktype":"sword", "hp":"576","mp":"228","str":"40","int":"21",
                "dex":"30","wit":"20","con":"43","men":"20","exp":"764","sp":"35","patk":"63","pdef":"99",
                "matk":"31","mdef":"73","atkspd":"253","rhand":"68","lhand":"0","rhand_name":"Falchion",
                "lhand_name":"","isUndead":"0","aggro":"0","race":"undead","icon":"spartoi","map_flag":"7","boss_flag":"0"},
  "vars":{"mob_id":"20492"},
  "inputVars":{"l2jz_query":"db.monster.main","mob_id":"20492"},
  "js":""},
"text":""}

Запрос этот выглядит так:
http://www.graciafinal.com/load.php?L2Z ... 719251-xml
+POST ( l2jz_query=db.monster.main&page=main&mob_id=20492 )

Т.е.
Код: Выделить всё
Dim hr As New WinHttpRequest, post As String
    post = "l2jz_query=db.monster.main&page=main&mob_id=20492"

    hr.Open "POST", "http://www.graciafinal.com/load.php?L2ZSYSTEM=5aa3882fed48e5ad2c19a44af02cc3b4&JsHttpRequest=12503549719251-xml"

    hr.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    hr.SetRequestHeader "Content-Length", Len(post)

    hr.Send post

    Debug.Print hr.GetAllResponseHeaders
    Debug.Print hr.ResponseText


Переменная L2ZSYSTEM - ID Сессии - выдаётся сервером при первом обращении в виде Set-Cookie. Соответственно, сначала нужно сделать обычный GET-запрос к главной странице сайта, прочитать из куков ИД сессии, и дальше запрашивать всё, что угодно, используя его.
Как генерится переменная JsHttpRequest я не совсем понял, скорей всего рандом для обхода кеширования ответов браузером. Я их штук десять перепробовал разных порядков. Все работали.

Ну и?

UPD: Обновлён и исправлен текст POST-запроса. Странно, но тот сервер у меня и некорректный вариант нормально принимал. Мистика, блин.. ))
Последний раз редактировалось iGrok 11.09.2009 (Пт) 19:36, всего редактировалось 1 раз.
label:
cli
jmp label

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 16.08.2009 (Вс) 9:06

Ну и?

И чего? Я не увидела рабочего примера...опять всё на пальцах в общих чертах:"Надо сделать то и сделать это и в итоге должно получиться" :)
Результат мне важен только для образования и ради истины т.к. с помощью webBrowser результат достигнут и в короткие сроки...без всяких "танцев с бубном"

Ну вот тут я с тобой всё-таки не соглашусь. Утверждение верно всегда.

Ех..."буквоеды". Ну не правильно выразилась :( Впрочем за меня уже сказали
... за недостатком времени, умения, знаний либо чего-то ещё более простым оказывается использование для тех же целей WB.

С вышеприведённой цитатой я и соглашусь. Быстрее получить результат и забыть о данном сайте...да и о методе получения данных с него.
А по-хорошему, надо расковыривать js-код на странице

Не нужно его ковырять...он есть тут http://l2z.googlecode.com/svn/trunk/www/

Эх...наверное Блог мы использовали не по назначению :( да простит меня автор, но сам напросился :D А ведь уже три дня прошло, а рабочего примера с WinHttpRequest так и нет.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: WebBrowser. Крик души.

Сообщение alibek » 16.08.2009 (Вс) 12:03

Greis писал(а):И чего? Я не увидела рабочего примера...опять всё на пальцах в общих чертах:"Надо сделать то и сделать это и в итоге должно получиться" :)

И все.
Если тебя такое положение дел не устраивает, значит форум этот не для тебя.
Lasciate ogni speranza, voi ch'entrate.

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

Re: WebBrowser. Крик души.

Сообщение iGrok » 16.08.2009 (Вс) 12:45

Greis писал(а):И чего? Я не увидела рабочего примера...

Эээ.. Не понял. А вторая кодовая вставка - это что? Не пример разве? Первая кодовая вставка - это как раз результат работы второй.

Пояснения дальше - это то, почему он может не заработать, и что нужно сделать, чтобы заработал.
Найти примеры отправления GET-запросов при помощи WinHTTP и считывания куков в сети - не проблема.
Даже найти готовые классы для обработки JSON - не проблема. Гугль выдаёт массу результатов.

Ну а если тебе лениво думать, и нужен только готовый код, ну извини. Этот форум - действительно не для тебя.
label:
cli
jmp label

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 16.08.2009 (Вс) 21:03

alibek писал(а):
Greis писал(а):И чего? Я не увидела рабочего примера...опять всё на пальцах в общих чертах:"Надо сделать то и сделать это и в итоге должно получиться" :)

И все.
Если тебя такое положение дел не устраивает, значит форум этот не для тебя.

Да конечно нет :D как может устраивать когда один "обвиняет один метод получения данных когда он наивыгоден в данном случае" ....далее просят просто экзешник на данный сайт и хотябы для получения одной странички в качестве доказательства!!! в борьбе HttpRequest VS Браузер.
То было алибеку...очень крутому прогеру :D
2iGrok С огромным уважением. Да да именно с уважением, но я не пришла сюда учиться....я ж не раз писала, что мне сайт не интересен как источник данных, всё уже полученно, но веббраузером и его езешник я могу предоставить. Вот и хотелось бы сравнить верность утверждения автора,что правильнее использовать НО К ДАННОМУ САЙТУ!!! Только и всего. А тут сразу напали. "да пошла ты" Я то пойду...просто интересно правдива ли эта тема?.. или всем тут наплевать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: WebBrowser. Крик души.

Сообщение Хакер » 16.08.2009 (Вс) 21:13

Greis, вы неадекватны.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Greis
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 30.03.2006 (Чт) 22:53

Re: WebBrowser. Крик души.

Сообщение Greis » 16.08.2009 (Вс) 21:38

Хакер писал(а):Greis, вы неадекватны.

Вот тоже верх красноречивости телепатов. Уважаю таких людей! Отныне буду адекватной :D


Вернуться в dr.MIG

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList