Прочитать страницу после авторизации

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Прочитать страницу после авторизации

Сообщение Джеффи » 17.10.2005 (Пн) 9:32

Ситуация такая:

Я знаю некий логин и пароль, чтобы пройти авторизацию на одном сайте.

Мне необходимо получить html код или текстовое содержание странници появляющейся после авторизации.

Я вижу решение такое, выполнить html-страницу с уже введёнными логином и паролем и собственно нажать искуственно кнопку submit.

Вопрос в том и заключается, как используя элемент управления браузера, ввести значения логина и пароль, а затем симмулировать нажатие submit, чтобы получить следующюю страницу.

Код страници авторизации следующий:
Код: Выделить всё
<HTML><HEAD><TITLE>NetByNet's new statistic</TITLE>
<META http-equiv=Content-Type content="text/html; charset=koi8-r"><LINK
href="NetByNet's new statistic.files/_style.css" type=text/css rel=stylesheet>
<SCRIPT language=javascript src="" type=text/javascript></SCRIPT>

<META content="MSHTML 6.00.2900.2769" name=GENERATOR></HEAD>
<BODY bgColor=#006699><BR><BR><BR>
<DIV align=center><IMG height=43 alt=""
src="NetByNet's new statistic.files/billing.gif" width=236 border=0></DIV><BR>
<DIV align=center>
<HR SIZE=1>
<!--menu--><BR><BR>
<TABLE cellSpacing=1 cellPadding=10 bgColor=#0077aa>
  <FORM method=post>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#006699 colSpan=2>Авторизация</TD></TR>
  <TR>
    <TD>Логин: </TD>
    <TD><INPUT name=user></TD></TR>
  <TR>
    <TD>Пароль: </TD>
    <TD><INPUT type=password name=pass></TD></TR>
  <TR>
    <TD align=middle bgColor=#006699 colSpan=2><INPUT type=submit value=" --- Войти --- "></TD></TR></FORM></TBODY></TABLE><BR><BR><BR>
<HR SIZE=1>
<BR><!--main--></DIV><BR></BODY></HTML>

Проблема ещё и в том, что не очень дружу с Html...

Данная программа будет служить для проверки состояния счёта для пользователей сетей NetByNet.

Всех зарание благодарю за проявленное внимание.
Бумага - друг программиста.

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 9:36

Если вы знаете другие способы получить информацию со следующией страници зная логин и пароль, предлагайте.

Возможно можно зацепиться за JavaScript используемый в приведённом коде.
Бумага - друг программиста.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 17.10.2005 (Пн) 10:18

Код: Выделить всё
WebBrowser1.document.all("user").value="login"
WebBrowser1.document.all("pass").value="pass"
WebBrowser1.document.forms(0).submit
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.10.2005 (Пн) 10:47

Джеффи, можешь задействовать мою Качалку (лежит в Кирпичах).
Тебе нужен метод POST и тело запроса user=имя&pass=пароль.
При этом, что важно, ни WebBrowser-а, ни других OCX не нужно совсем.
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 11:38

tyomitch, БОЛЬШОЙ ТЕБЕ РЕСПЕКТ ЗА ПЕРЕВОД Transport Tycoon Deluxe, ещё респект за то что я нашёл самую лучшую в мире игру, в которую когда либо играл!!!

А теперь к делу, что-то не могу я вникнуть... В твою качалку, мог бы ты привести пример запроса авторизации в качестве кода...

Если не сложно я бы попросил объяснить как сначало ввести логин и пароль, а потом скачать ту самую нужную мне страницу...
Последний раз редактировалось Джеффи 17.10.2005 (Пн) 12:00, всего редактировалось 2 раз(а).
Бумага - друг программиста.

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 11:43

Эх... только начал на си переходить... И опять пришлось вернуться к старому доброму бейзику...
Бумага - друг программиста.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.10.2005 (Пн) 12:10

Замени содержимое Command1_Click в примере на

Код: Выделить всё
Private Sub Command1_Click()
On Error GoTo Handler
    Command1.Enabled = False
    SetCancel = False
               
    txtOut = ""
    Kachalka.Method = BINDVERB_POST
    Kachalka.RequestData = "user=имя&pass=пароль"
    Kachalka.DownloadPush txtUrl
    Exit Sub
   
Handler:
    MsgBox "Error #" & Err.Number
End Sub
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 12:17

Run-time error '-2146697208 (800c0008)':
Automation Error
Бумага - друг программиста.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.10.2005 (Пн) 14:21

INET_E_DOWNLOAD_FAILURE - ага, малоинформативно...
А ты в txtUrl-то правильный адрес указываешь?
Если да, то назови мне этот адрес, буду пытаться сам.
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 18:43

Бумага - друг программиста.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.10.2005 (Пн) 19:42

https :-(
Это чудо моей качалкой пока не поддерживается :-(
Сейчас пойду латать.
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 17.10.2005 (Пн) 21:00

Как залатаешь сообщи, а лучше тут выложи, а ещё лучше и проще выложи в кирпичах и битонных плитах с оконными рамами и стёклами и дай мне туда ссылку :D
Бумага - друг программиста.

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 18.10.2005 (Вт) 9:42

Что-то ты долго...
Бумага - друг программиста.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.10.2005 (Вт) 11:30

Ни фига себе...
Джеффи, через неделю загляни за апдейтом.
Долго, блин...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.10.2005 (Ср) 13:51

Неа, не выходит каменный цветок :-(
https-гуру на форуме есть? Помогите кто-нибудь ;-)
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 22.10.2005 (Сб) 19:44

А что именно у тебя не выходит?
Бумага - друг программиста.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.10.2005 (Сб) 19:58

Не знаю, что именно нужно приделать, чтобы https работал.
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 23.10.2005 (Вс) 0:22

Ммм... Переключиться на TCP 443, может? Впрочем, это скорее всего автоматом делается.

А сертификаты народ по привычке выдает себе сам. Действительно, зачем верисайн или комодо мучать...

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 24.11.2005 (Чт) 17:48

а как твою качалку в прогу засунать, что бы закаченный файл в определенную папку скидывался и не выползало окно , требующее авторизации? код можешь кинуть?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.11.2005 (Чт) 19:41

Чтобы не выползало окно, нужно задавать юзернейм и пассворд в событии _Authenticate.
Это если у тебя http. Как приделать https, я не знаю.
Изображение

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 25.11.2005 (Пт) 11:22

tyomitch
просто как переменные, или развернуто? кстати, как тоже сделать в .NET, а то визард ругается на каждую строку?

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 25.11.2005 (Пт) 11:24

tyomitch
просто как переменные, или развернуто? кстати, как тоже сделать в .NET, а то визард ругается на каждую строку?

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 25.11.2005 (Пт) 11:30

tyomitch
просто как переменные, или развернуто? кстати, как тоже сделать в .NET, а то визард ругается на каждую строку?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.11.2005 (Пт) 14:43

Юджин, просто как переменные

А по поводу .net я тебе не консультант, обратись к Sebas-у или кому-нибудь ещё.
Изображение

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 01.12.2005 (Чт) 14:29

tyomitchладно, а как прописать пароль и логин? строки нашел, но прописал пока в др части проги - при первом запуске открывает окно подтверждения пароля. при повторе - нет.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.12.2005 (Чт) 16:00

Юджин, покажи код своего _Authenticate: телепатией не владею.
Изображение

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 02.12.2005 (Пт) 11:16

я ничего не менял в _Authenticate. просто не понимаю, как прописать переменные пароля и логина. так: set password = "123123", или как-то иначе с добавлением еще каких-то переменных, прописанных в твоей проге?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.12.2005 (Пт) 20:30

даблииин!! :twisted: :twisted:
Код: Выделить всё
Private Sub Kachalka_Authenticate(hWnd As Long, Username As String, Password As String)
Username = "vasya"
Password = "pupkin"
End Sub

Рокет-сайенс, да?
Изображение

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 02.12.2005 (Пт) 20:32

вообщем надо было просто поменять в class_module строку
Код: Выделить всё
    If hWnd = 0 Then
        pszUsername = StrPtr("username")
        PutMem4 ByVal VarPtr("username"), 0
        pszPassword = StrPtr("password")
        PutMem4 ByVal VarPtr("password"), 0
на
Код: Выделить всё
If hWnd > 0 Then
        pszUsername = StrPtr("username")
        PutMem4 ByVal VarPtr("username"), 0
        pszPassword = StrPtr("password")
        PutMem4 ByVal VarPtr("password"), 0
тогда все работает без открываения окна. всем спасибо!!!

След.

Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 137

    TopList