Jak wczytać stronę www po potwierdzeniu "Postem"

0

Witam wszystkich DelphiManiaków i czytelników:).

Mam taki problem, szukałem na forum i w google, ale jak dotąd nie znalazłem jego rozwiązania, mam nadzieję, że ktoś z Was mi w tym pomoże :-) .

Pisze program, który analizuje kod strony www i na jego podstawie generuje bądź podaje prawidłowy link spod którego można ściągnąć film we flashu, działał prawidłowo...

...dopóki nie napotkałem na stronę www, w której trzeba potwierdzić komunikat, że treść jest dostępna dla pełnoletnich użytkowników... dopiero wtedy przeglądarka "doczytuje" dalszy kod strony html z odtwarzanym filmem (strona z odtwarzanym filmem ma identyczny adres jak strona z komunikatem...), z krórego już można bezproblemowo wyłuskać link do flasha.

No i tu jest problem, jak go rozwiązać...??? Wczytując źródło strony do komponentu Indy idHTTP wczytuje się tylko strona z komunikatem. Na początku myślałem, że ów komponent nie radzi sobie z kodem strony, dopiero potem się zorientowałem, ze trzeba najpier potwierdzić komunikat...

Metoda POST jest zrealizowana dość dziwnie..., bo nie wiadomo, gdzie wysłać parametr... w kodzie strony nie ma słowa kluczowego "action=.". No i najważniejsze jak doczytać dalszy kod html po wysłaniu posta? Czy w ogóle da się to zrobić tym komponentem?

Prosiłbym o jakiś kod w Delphi wg poniższego schematu.

  • wczytuję źródło:
    Memo1.Text:= idHTTP.Get('http://www.4fun.tv/czlowiek-biegunka---wscieklizna,24,1197,5,0,0.html');

  • jak teraz wysłać POST i z jakimi paramerami???

  • no i jak doczytać dalszy kod html żeby go wczytać np: do komp. Memo (już po potwierdzeniu komunukatu)???.

Poniżej kod strony z komunikatem.
adres http://httpf="http://http://www.4fun.tv/czlowiek-biegunka---wscieklizna,24,1197,5,0,0.html">http://http://www.4fun.tv/czlowiek-biegunka---wscieklizna,24,1197,5,0,0.html</a>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
	    <title>4fun.tv</title>
	    <link rel="stylesheet" type="text/css" href="/css/4funtv.css">
	    <script language="javascript" type="text/javascript" src="/js/swfobject.js"></script>
	    <script language="javascript" type="text/javascript" src="/js/scripts.js"></script>
	</head>
  <body background="/i/www3/tlo.gif"> 

    <table border="0" width="893" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td><!-- naglowek -->
<table border="0" width="893" cellspacing="0" cellpadding="0">
	<tr>
		<td rowspan="2" valign="bottom"><a href="/"><img align="top" src="/i/www3/logo-new.gif" width="133" height="160" border="0"></a></td>
		<td width="760" height="77" colspan="2">
<div style="margin:5px;text-align:center;">
<script type="text/javascript">
<!--<![CDATA[
/* (c)AdOcean */
if(location.protocol.substr(0,4)=='http')document.write(unescape('%3C')+'script id="Przestrzen reklamowa.4fun.tv.Strona glowna" src="'+location.protocol+'//s1.ad.adocean.pl/_'+(new Date()).getTime()+'/ad.js?id=RoFXkJOc50KAEkGtIIKIQSDNfzHnbG_0CYVEu3LlebH.D7/x='+screen.width+'/y='+screen.height+'" type="text/javascript"'+unescape('%3E%3C')+'/script'+unescape('%3E'));
//]]>-->
</script>
</div>
		</td>
	</tr>
	<tr>
		<td width="760" height="83" background="/i/www3/_top_tlo.gif" align="right" valign="top"><a href="http://video.4fun.tv" target="_blank"><img src="/i/www3/button/zaloguj.gif" border="0"></a></td>
		<td width="9" height="83" background="/i/www3/_top_right.gif">&nbsp;</td>
	</tr>
</table>
<!-- /naglowek -->
<!-- nawigacja -->
<table border="0" width="893" height="37" background="/i/www3/naw/naw_tlo.gif" cellspacing="0" cellpadding="0" align="center">
	<tr>
		<td width="893" align="center">

<table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><a href="/" onMouseover="dropdownmenu(this, event, menu1, '120px')" onMouseout="delayhidemenu()"><img id="btn1" onMouseOver="changepic('btn1',load_btn1_on)" onMouseOut="changepic('btn1',load_btn1_off)" src="/i/www3/naw/4fun_tv_off.gif" width="53" height="37" alt="" border="0"></a></td><td><a href="/kartony,5,0,5,0,0.html" onMouseover="dropdownmenu(this, event, menu2, '180px')" onMouseout="delayhidemenu()"><img src="/i/www3/naw/kartony_on.gif" width="61" height="37" border="0"></a></td><td><a href="/czat-w-tv,20,0,6,0,0.html" onMouseover="dropdownmenu(this, event, menu3, '120px')" onMouseout="delayhidemenu()"><img id="btn3" onMouseOver="changepic('btn3',load_btn3_on)" onMouseOut="changepic('btn3',load_btn3_off)" src="/i/www3/naw/chat_off.gif" width="71" height="37" border="0"></a></td><td><a href="/rozrywka,7,0,7,0,0.html" onMouseover="dropdownmenu(this, event, menu4, '120px')" onMouseout="delayhidemenu()"><img id="btn4" onMouseOver="changepic('btn4',load_btn4_on)" onMouseOut="changepic('btn4',load_btn4_off)" src="/i/www3/naw/rozrywka_off.gif" width="69" height="37" border="0"></a></td><td><a href="/gsm,9,0,9,0,0.html"><img id="btn6" onMouseOver="changepic('btn6',load_btn6_on)" onMouseOut="changepic('btn6',load_btn6_off)" src="/i/www3/naw/gsm_off.gif" width="91" height="37" border="0"></a></td><td><a href="/konkursy,10,0,10,0,0.html"><img id="btn7" onMouseOver="changepic('btn7',load_btn7_on)" onMouseOut="changepic('btn7',load_btn7_off)" src="/i/www3/naw/konkursy_off.gif" width="65" height="37" border="0"></a></td><td><a href="http://video.4fun.tv" target="_blank"><img id="btn8" onMouseOver="changepic('btn8',load_btn8_on)" onMouseOut="changepic('btn8',load_btn8_off)" src="/i/www3/naw/wypowiedz_off.gif" width="77" height="37" border="0"></a></td></tr></table>

		</td>
	</tr>
</table>
<!-- /nawigacja --></td>
      </tr>
      <tr>
        <td>

				<table border="0" width="893" cellspacing="0" cellpadding="0" align="center">
				<tr>
					<td width="100%" valign="top">           

<table width="677" border="0" cellspacing="0" cellpadding="0">
<tr>
	<td colspan="4" width="14">&nbsp;</td>
</tr>
<tr>
 <td><img src="/i/www3/p.gif" alt="" height="1" width="216"></td>
 <td><img src="/i/www3/p.gif" alt="" height="1" width="14"></td>
 <td><img src="/i/www3/p.gif" alt="" height="1" width="433"></td>
 <td><img src="/i/www3/p.gif" alt="" height="1" width="14"></td>
</tr>
<tr>
  <td valign="top" colspan="3">

A tu w kodzie jest komunikat POST

<form method="post">
<div class="box box_pink">
  <p class="title"><span>Akceptacja</span></p>
  <div class="desc">
Niniejsza strona, ze względu na zawarte na niej niektóre tre¶ci przeznaczona jest wył±cznie dla pełnoletnich użytkowników.
<br><br>
Nie ponosimy odpowiedzialno¶ci za ewentualne roszczenia osób, które skorzystały z jej usług pomimo tego, że nie ukończyły 18 lat.
<br><br>
Każdy niepełnoletni użytkownik, który wchodzi na stronę robi to samowolnie, a tym samym łamie powyższy zakaz.
<br><br>
<table border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
	<td><input type="hidden" name="getadult" value="1">
		<input type="image" src="/i/www3/button/enter.gif">
	</td>
	<td width="400"></td>
	<td>
 	    <a href="/"><img src="/i/www3/button/exit.gif" border="0"></a>
 	</td>
</tr>
</table>
  </div>
</div>
</form>

No i dalej kod html

  
  </td>
  <td valign="top" width="14">&nbsp;</td>
</tr>
</table>



</td>
										<td valign="top">
					<table width="216" height="250" border="0" cellspacing="0" cellpadding="0">
<!-- odstep -->
     <tr>
    	<td colspan="4" width="14">&nbsp;</td>
    </tr>
<!-- /odstep -->
	<tr>
		<td valign="top" width="216" height="236">
<table width="216" height="236" border="0" cellspacing="1" cellpadding="0" bgcolor="#ff5693">
	<tr>
		<td background="/i/www3/main/recommendtlo.gif" width="216" height="27" colspan="3">
			<table border="0" cellpadding="0" cellspacing="0">
				<tr>
					<td width="186" height="27" align="center"><div class="box_title_t2">Polecamy</div></td>
					<td width="30" height="27"><img src="/i/www3/main/recommendlogo.gif" width="30" height="27" border="0" align="right"></td>
				</tr>
			</table>
		</td>
	</tr>
	<tr>
		<td width="214" height="208" bgcolor="#FFFFFF" align="center">
		<p id="polecamy4"><a href="http://www.macromedia.com/go/getflashplayer">Get Flash</a></p>
		<script type="text/javascript">
		var so = new SWFObject('/swf/polecamy004.swf','polecamy4_name','170','165','6');
		so.addParam("wmode","opaque");
		so.addParam("flashVars", "feedXML=/addons/data_recommend.php");
		so.write('polecamy4');
	  </script>
		</td>
	</tr>
</table>
</td>
</tr>

</table>					           

					           

<table width="216" height="250" border="0" cellspacing="0" cellpadding="0">
<!-- odstep -->
     <tr>
    	<td colspan="4" width="14">&nbsp;</td>
    </tr>
<!-- /odstep -->
	<tr>
		<td valign="top" width="216" height="236">
<table width="216" height="236" border="0" cellspacing="1" cellpadding="0" bgcolor="#ff5693">
	<tr>
		<td colspan="3" background="/i/www3/main/gsmtlo.gif" width="186" height="27">
			<table border="0" cellpadding="0" cellspacing="0">
				<tr>
					<td width="186" height="27" align="center"><div class="box_title_t2">GSM</div></td>
					<td width="30" height="27"><img src="/i/www3/main/gsmlogo.gif" width="30" height="27" border="0" align="right"></td>
				</tr>
			</table>
		</td>
	</tr>
	<tr>
		<td width"2" bgcolor="#FFFFFF"></td>
		<td width="214" height="260" bgcolor="#FFFFFF"><iframe src="http://partner.wapster.pl/partnerGetTopTenDP.aspx?Id=727&Type=501" width="214" height="260" frameborder="0"></iframe></td>
	</tr>
</table>
</td>
</tr>

</table>					</td>
									</tr>
				</table>

        </td>
      </tr>
      <tr>
        <td><table border="0" width="100%" height="66" cellspacing="0" cellpadding="0">
  <tr>
  	<td background="/i/www3/footer1.gif" height="43" align="center" valign="center">
  	<a href="/o-nas,12,0,0,0,0.html">O nas</a> | 
   	<a href="/dzial-sprzedazy,2,0,0.html" target="_blank">Reklama</a> | 
  	<a href="/polityka-prywatnosci,14,0,0,0,0.html">Polityka prywatno¶ci</a> | 
   	<a href="/regulamin-uslug,22,0,6,0,0.html">Regulaminy</a> |
   	<a href="http://www.adnet.pl/download/Adnet_Specyfikacja.pdf">Specyfikacja techniczna</a> |
   	 <a href="/kontakty,32,0,0,0,0.html">Kontakty</a>	
  	</td>
  </tr>
  <tr>
  	<td background="/i/www3/footer2.gif" height="23"></td> 
  </tr>
</table></td>
      </tr>
    </table>
<script language="javascript" type="text/javascript">
/*<![CDATA[*/
var pp_gemius_identifier = new String('0sfrQub5rIAe2s2gyBbMRZeCfQrgw3tcuB5_N7JUtKH.g7');
/*]]>*/
</script>
<script language="javascript" type="text/javascript" src="http://adnet.hit.gemius.pl/pp_gemius.js"></script>
  </body>
</html>

Z góry dzękuję za odpowiedź i pozdrawiam.


0

AFAIK jeżeli w form nie ma atrybutu action zostanie użyty zamiast niego URL samego dokumentu.

Jak użyć metody POST w swoim kliencie HTTP znajdziesz na pewno w jego dokumentacji..

0

Dzięki coobba:).

Wysyłam posta, ale niestety nie działa... widocznie coś robię nie tak, albo coś źle napisałem...

Oto kod:

procedure TForm1.Button1Click(Sender: TObject);
var Snd, Rcv: TStringStream; Adres: string;
begin
  // Inicjalizacja zmiennych - Snd - dane wysyłane, a Rcv - dane odebrane
  Snd:=TStringStream.Create('');
  Rcv:=TStringStream.Create('');


  // Nie wiem, czy dobrze zapisałem te parametry poniżej
  // Na stronie www jest : <input type="hidden" name="getadult" value="1">

  // Wpisałem tak 'getadult&1' i tak jak poniżej i nie ma efektów...
  Snd.WriteString('getadult=1');

  // Przypisany na sztywno adres strony www
  Adres:='http://www.4fun.tv/czlowiek-biegunka---wscieklizna,24,1197,5,0,0.html';
  
  Memo1.Text:=idHTTP.Get(Adres);
  
  idHTTP.Post(Adres,Snd,Rcv);

  // Podglądam raport z wysłania Posta - wszystko ok - wartość 200
  Edit1.Text:=idHTTP.ResponseText;


  // Dla pewności czyszczę komponent Memo i przypisuję do niego dane zwrócone przez Post
  // strona jest identyczna jak przez jego wysłaniem nadal ma w sobie frazę o komunikacie...
  Memo1.Clear;
  Memo1.Text:=Rcv.DataString;


  HTTP.Disconnect;
  Snd.Free;
  Rcv.Free;
end;

Nie wiem, co robię źle, być może jeszcze coś trzeba uwzględnić... Może strona www po wysłaniu posta nie znajduje się w zmiennej Rcv, tylko trzeba to zrobić jakoś inaczej.

Może trzeba dopisać jakieś nagłówki - idHTTP.Request.ContentType, jeśli tak to co wpisać?

Proszę o pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1