Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Имитация браузера-запрос методом post

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
я бы запихнул еще и  
name="SUBMIT_LOGINDATA" value="Login"  

 
Попробовал запихнуть. Теперь выводится только  
 
HTTP/1.1 302 Found Connection: Keep-Alive Date: Wed, 11 Aug 2004 21:11:33 GMT Location: https://secure.element5.com/esales/cp/overview/index.html?sessionid=132161422&random=f07dd150130c83f3bab43f491cd1b9ca Server: Apache Content-Type: text/html Client-Date: Wed, 11 Aug 2004 21:11:34 GMT Client-Peer: 217.65.128.71:443 Client-Response-Num: 1 Client-SSL-Cert-Issuer: /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority Client-SSL-Cert-Subject: /C=DE/ST=Northrhine Westfalia/L=Cologne/O=element 5 Informationstechnologien- und dienstleistungen AG/OU=Network Security/CN=secure.shareit.com Client-SSL-Cipher: DES-CBC3-SHA Client-SSL-Warning: Peer certificate not verified Client-Transfer-Encoding: chunked Keep-Alive: timeout=10, max=100 P3P: policyref="https://secure.element5.com/w3c/p3p.xml", CP="CAO DSP COR ADMo PSA CONo HIS OUR SAMo UNRo LEG UNI"
 
Страница регистрации больше не выводится.

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 01:16 12-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Страница регистрации больше не выводится.


Цитата:
Теперь выводится только

выводится как раз то, что нужно - редирект на нужную страницу

Цитата:
Location: https://secure.element5.com/esales/cp/overview/index.html?sessionid=132161422&random=f07dd150130c83f3bab43f491cd1b9ca

в LWP вроде бы можно сразу вытащить этот редирект и даже можно сказать, чтобы следовал редиректу...

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:18 12-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
в LWP вроде бы можно сразу вытащить этот редирект и даже можно сказать, чтобы следовал редиректу...

Это не критично, важно, что мы туда попали .
 
А вообще -

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 17:14 12-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кхм. Тут продолжение темы есть. Похожая ситуация несколько, только тут еще и файл надо скачать (или как минимум, получить результат редиректа).
 
В общем, нужно зарегиться на сайте eSellerate и оттуда скачать файл EST (точнее, получить абсолютную ссылку на файл).
 
Вот код:
 

Код:
 
#!/usr/bin/perl -w
 
use LWP::UserAgent;
 
use HTTP::Request::Common qw(POST GET);
use strict;
use warnings;
 
print "Content-type: text/html; charset=windows-1251\n\n";
 
$|++;
 
my $ua = LWP::UserAgent->new();
 
 
 
#Get additional parameters sessioId and random
 
my $uri = "https://affiliates.esellerate.net/affiliates/Login.aspx";
 
my $req = GET $uri;
 
my $cont = $ua->request($req)->as_string;
 
my $viewstate = $1 if $cont =~ m{name="__VIEWSTATE" value="(.*)" />}gim;
 
#~ #Post the authorisation form - log into ShareIt
 
$req = POST $uri,
[LoginName => "login",
Password => "password",
__VIEWSTATE => "$viewstate",
iLogin => "Login"];
 
$cont = $ua->request($req)->as_string;
 
 
exit();
 

 
В результате получается следующее:

Код:
 
<HTML>
 
<HEAD>
 
<title id="iPageTitle">Reminder</title>
 
<META content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
 
<META content="Visual Basic 7.0" name="CODE_LANGUAGE">
 
<META content="JavaScript" name="vs_defaultClientScript">
 
<META content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
 
<LINK href="zStyles.css" type="text/css" rel="stylesheet">
 
</HEAD>
 
<BODY bgColor="white">
 
<form name="Form1" method="post" action="LoginMessage.aspx" id="Form1">
 
<input type="hidden" name="__VIEWSTATE" value="dDw3NTI3MTAzODA7dDw7bDxpPDE+O2k8Mz47PjtsPHQ8cDxsPGlubmVyaHRtbDs+O2w8UmVtaW5kZXI7Pj47Oz47dDw7bDxpPDU+O2k8OT47aTwxMT47aTwxMz47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8XDxmb250IGNvbG9yPXJlZFw+UmVtaW5kZXJcPC9mb250XD47Pj47Pjs7Pjt0PHA8bDxWaXNpYmxlOz47bDxvPHQ+Oz4+Ozs+O3Q8cDxwPGw8TmF2aWdhdGVVcmw7VmlzaWJsZTs+O2w8QXZhaWxhYmxlUHJvZHVjdHMuYXNweDtvPHQ+Oz4+Oz47Oz47dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPDA0Oz4+Oz47Oz47Pj47Pj47Pj47Pjuni5m5AjlWjbl5pYHwXuMFF0hn" />
 
<script language=JavaScript> function OpenHelpWindow( inNewURL ) {tNewWin = window.open(inNewURL, 'HelpWindow', 'toolbar=no,location=no,scrollbars=yes,resizable=yes,width=600,height=440');tNewWin.focus();}</script>
 
 
 
 
 
<!-- TOP -->
 
<!-- BANNER -->
 
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0" id="NavTopTable">
 
<TR>
 
<TD background="img/affiliate_banner_bg.gif"><A href="Default.aspx"><IMG height="65" src="img/affiliate_banner.gif" width="502" border="0"></A></TD>
 
</TR>
 
<TR>
 
<TD><IMG height="10" src="img/spacer.gif" width="750"></TD>
 
</TR>
 
</TABLE>
 
 
 
<!-- MIDDLE -->
 
<TABLE cellSpacing="0" cellPadding="0" width="750" border="0">
 
<TR>
 
<!-- Menu -->
 
<TD class="MenuBorder" width="2"><IMG src="img/spacer.gif" width="2"></TD>
 
<TD class="MenuBackground" vAlign="top" width="146">
 
<TABLE width="146" border="0" cellspacing="0" cellpadding="0" bordercolor="#9c0057" bgcolor="#d4dce2" rules="none">
 

 
<!-- MENU TOP -->
 
<TR>
 
<TD width="146" bgColor="#9c0057" height="2"><IMG height="2" src="img/spacer.gif" width="146"></TD>
 
</TR>
 
<!-- HOME -->
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<a href="home.aspx" class="Menu">Home</a></B></TD>
 
</TR>
 

 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<A href="Login.aspx" class="Menu">Login</A></B></TD>
 
</TR>
 

 
<!-- SIGN UP -->
 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<A href="SignUp.aspx" class="Menu">Sign-up</A></B></TD>
 
</TR>
 

 
 
 
<!-- GETTING STARTED -->
 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<A href="GettingStarted.aspx" class="Menu">Getting  
 
Started</A></B></TD>
 
</TR>
 
<!-- PRODUCT LIBRARY -->
 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<A href="AvailableProducts.aspx" class="Menu">Available  
 
Products</A></B></TD>
 
</TR>
 

 
<!-- CONTACT ESELLERATE -->
 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
<TR>
 
<TD class="Menu" height="22"><B>&nbsp;<A href="ContacteSellerate.aspx" class="Menu">Contact  
 
eSellerate</A></B></TD>
 
</TR>
 

 
<TR>
 
<TD height="1" bgcolor="#9c0057"><IMG src="img/spacer.gif" width="1" height="1"></TD>
 
</TR>
 
 
 
</TABLE>
 
</TD>
 
<TD class="MenuBorder" width="2"><IMG src="img/spacer.gif" width="2"></TD>
 
<TD width="10"><IMG height="10" src="img/spacer.gif" width="10"></TD>
 
<!-- Content -->
 
<TD class="Standard" vAlign="top" width="590">
 
<P><span id="iPageTitle2" class="PageTitle"><font color=red>Reminder</font></span>
 
<HR width="590" SIZE="1">
 
<BR>
 

 
<P></P>
 
<P>You must complete the <a href="MyPaymentInfo.aspx">My Payment Information</a> section before eSellerate can pay you for your sales. If you prefer to enter this information later, you may click the link below.<BR>
 
<BR>
 
<a id="iContinue" href="AvailableProducts.aspx">Continue</a><BR>
 
<IMG height="8" src="img/spacer.gif" width="5">
 
</P>
 
</TD>
 
</TR>
 
</TABLE>
 
<!-- BOTTOM -->
 
<TABLE width="100%" border="0" cellspacing="0" cellpadding="2">
 
<TR>
 
<TD class="SmallWhite" align="right" bgcolor="#9c0057">
 
Copyright 2000-<span id="NavBotCtl_ThisYear">04</span>, <A href="http://www.esellerate.net" class="SmallWhite" target="_blank">
 
eSellerate Inc.</A> | <A href="LegalInfo.aspx" tabindex="32767" class="SmallWhite">
 
Legal Information</A>
 
</TD>
 
</TR>
 
</TABLE>
 
</form>
 
</BODY>
 
</HTML>
 

 
Ситуация двоякая. Наличие Reminder'а говорит о том, что регистрация прошла успешно. С другой стороны, внешний вид меню, имеющего пункт "Login", говорит об обратном (обычно в случае успешной регистрации меню имеет более развернутый вид и точно не имеет пункта "Login").
 
Далее, при имеющемся списке программ мы получаем ссылку на страницу для скачивания файла.
 

Код:
 
$uri = "https://affiliates.esellerate.net/affiliates/ProductDetail.aspx?SSLIDC=9196109420&tab=2";
 
$req = GET $uri;
 
$cont = $ua->request($req)->as_string;
 

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

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 02:21 13-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
 "https://affiliates.esellerate.net/affiliates/ProductDetail.aspx?SSLIDC=9196109420&tab=2";

откуда линк??  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:26 13-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
откуда линк??  

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

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 09:46 13-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Да, собственно, просто линк, который в зависимости от залогиненности должен либо дать редирект-ссылку на скачивание, либо предложить залогиниться.

просто линк? а куки? как, по твоему, поддерживается авторизация?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:14 13-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
просто линк? а куки? как, по твоему, поддерживается авторизация?  

 
Намекаешь на cookie_jar?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 01:40 14-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Намекаешь на cookie_jar?

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:44 14-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
поэтому проверь - не передается ли параметр, который теряешь при обращении к файлу.

Параметр есть, только форма не сабмитится. Другое дело, есть там в заголовке такая штука
 
Set-Cookie: ASP.NET_SessionId=blablabla; path=/
 
Это оно?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 02:00 14-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Set-Cookie: ASP.NET_SessionId=blablabla; path=/  
Это оно?

да.. ID сессии.. все остальные данные хранятся на сервере.. при запросе файла это печенье тоже нужно передавать.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:04 14-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
при запросе файла это печенье тоже нужно передавать.

 
Ты cookie_jar имеешь в виду? У меня пока по-нормальному не получилось с ним работать. Насколько я понял, достаточно просто инициализировать с помощью cookie_jar поддержку куков в UserAgent. В этом случае все куки будут сохраняться и передавать при необходимости. Но, видимо, что-то не так, не передается эта штука .

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 00:18 15-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit
http://www.getinfo.ru/article522.html
http://www.perl.com/pub/a/2002/08/20/perlandlwp.html?page=2
http://www.perldoc.com/perl5.8.0/lib/LWP/UserAgent.html

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:25 15-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
За ссылки спасибо!
 
Правда, все это я уже многажды перечитывал. Мне вот что нужно понять. Куку эту нужно в заголовок "заталкивать" или подобно тому, как параметры передаются?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 01:18 15-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Правда, все это я уже многажды перечитывал. Мне вот что нужно понять. Куку эту нужно в заголовок "заталкивать" или подобно тому, как параметры передаются?

либо (сначала включив их запись)

Код:
 
my $cookie_jar = HTTP::Cookies->new;
$cookie_jar->set_cookie($version, $key, $val, $path,
       $domain, $port, $path_spec, $secure, $maxage, $discard,
       \%rest)
$cookie_jar->add_cookie_header($request);
 

либо
Код:
 
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET =>
"$URL_of_affiliate?total=$total&subtotal=$subtotal");
.....
if ($id) {
        $req->header('Cookie' => "AFFILIATE=$id");    #put the cookie in the
header if $id exists
}
$res = $ua->request($req);
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:31 15-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
либо

Код:
 
 
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET =>
"$URL_of_affiliate?total=$total&subtotal=$subtotal");
.....
if ($id) {
        $req->header('Cookie' => "AFFILIATE=$id");    #put the cookie in the
header if $id exists
}
$res = $ua->request($req);
 

 

 
Сработало!!!
Осталось получить непосредственную ссылку на файл...  
 
Добавлено
Немножко видоизменю задачу. В общем, скрипт 1 предназначен для скачивания файла. Реально ли из скрипта 2, обращающегося к скрипту 1, добиться того же эффекта (то есть, скачать файл)?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 15:49 16-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Немножко видоизменю задачу. В общем, скрипт 1 предназначен для скачивания файла. Реально ли из скрипта 2, обращающегося к скрипту 1, добиться того же эффекта (то есть, скачать файл)?

зависит от того, как он написан.. реально.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:33 17-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
зависит от того, как он написан.. реально.
 

 
Ладно, хотя бы ссылку тогда на файл...
Я вот мониторил процесс скачивания по редиректной ссылке с помощью MyNetMon. Полный путь к файлу "засветился". А вот из скрипта реально его получить?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 00:42 17-08-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
apatit

Цитата:
Полный путь к файлу "засветился". А вот из скрипта реально его получить?

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:43 17-08-2004
apatit



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
да. если полный путь передался браузеру, то значит, что можно его получить и скриптом.
 

 
То есть, он где-то в заголовке должен содержаться?

----------
http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 00:55 17-08-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » Интернет » Web-программирование » Имитация браузера-запрос методом post


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru