Pytanie odnosnie kodu strony

0

Witam, mam pytanie: Czy pobranie kodu strony np. do komponentu memo jest dla serwera rownoznaczne z faktycznym wejsciem na taka strone? Czy serwer wtedy zapisuje ip urzadzenia pobierajacego kod strony? Jak to jest dokladnie?

0

Tak, to chyba oczywiste. Jak wchodzisz na stronę to też pobierasz jej kod, tylko przeglądarka ci go przetwarza i pokazuje wyrenderowaną stronę, ale z technicznego punktu widzenia, dla serwera to jest taka sama operacja.

0

Czy zapisuje IP to zależy od serwera (czy są logi), a czy jest równoznaczne z wejściem za pomocą przeglądarki zależy od tego w jaki sposób to zrobisz tj. ustawisz wszystkie nagłówki tj. User-Agent, Accept, Referer, Content-Type itd... jeżeli zrobisz to idealnie to serwer nie będzie w stanie rozpoznać że pobierasz stronę za pomocą Indy, Synapse czy czegokolwiek.

0

Dodam od siebie, że większość serwerów loguje za pewne jedynie datę, czas, IP, url i UserAgent, bo więcej informacji jest zbędne. Jednak są strony, który odwiedzając z pod Synapse czy Indy albo nawet z pod Simple TCP musisz wzgobacić o konkretne nagłowki. Taki przykład jest opisany w moim artykule na: Obsługa protokołu HTTP przy użyciu pakietu Synapse - gdzie bez wpisu Accept: text/html w nagłowkach strona http://lockerz.com nie pozwalała na zalogowanie. Podejrzewam, że tym proatym aprawdzeniem chciano odróżnić prawdziwe przeglądarki www od botów.

0

a czy istnieje mozliwosc pobrania samego zrodla strony poprzez webbrowser?

0

Za pewne tak, ale dlaczego do polowania na muche korzystać z armaty? Jeżeli dobrze się orientuję, to gdy dana strona nie korzysta z JavaScriptu do wyświetlania contentu - można śmiało skorzystac z Synapse / SimpleTcp / Indy (zaproponowałem w kolejności: dla VCL, dla WinAPI, dla osoby która upiera się by nie używać Synapse ani SimpleTcp i będzie czekać aż @kAzek znajdzie czas i odpisze jej na forum, na pytania zadane w razie problemów napotkanych przy skorzystaniu z tego akurat komponentu ;)).

0

bo napisalem program ktory w petli odczytuje strony z listboxa i pokolei je uruchamia. napisalem to pod webbrowsera bo z indy mialem problemy bo program nie czekal na zakonczenie zaladowania strony i lecial dalej przez co sypalo bledami.

var
Selected : string;
i : integer;
HTML : String;

begin
try

for i:=0 to ListBox1.Items.Count-1 do
begin
memo1.lines.add(TimeToStr(Now) + ' Ładuję: ' + ListBox1.Items[i]);
WebBrowser1.Navigate(ListBox1.Items[i]);
       while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
          begin
           Application.ProcessMessages;
           ListBox1.ItemIndex:=i;

          end;
end;

 except
  on Exception do
  Begin
  WebBrowser1.Stop;
  ShowMessage('Problemy z połączeniem: '+ListBox1.Items.Strings[ListBox1.ItemIndex]);

    end;
 end;

ale problem w tym ze webbrowser wczytuje powoli.. wolalbym wczytywac tylko sam kod kazdej strony..

0

Jak pobierałeś te strony pod Indy? O ile wiem to tam po Get nie ma prawa się wykonać inny kod dopóki się to Get nie wykona. Chyba, że robiłeś to w niezsynchronizowanych wątkach albo w jakiś zdarzeniach. A w ogóle tak się zastanawiam, dlaczego wszycy muszą się upierać na to Indy. Wziął by się raz jakiś nowy pytający "uparł" i zrobił to pod Synapse albo SimpleTcp. Tam też przecież można sobie obsłużyć błedy. Fakt, że pod Synapse musimy obsłużyć przekierowania ręcznie, a pod SimpleTcp wszystko trzeba zrobić niemal ręcznie poza nawiązaniem połaczenia. Ale od czego są przykłady w sieci. Myśleć ludziska. Przecież ja machnąłem arta o Synapse, a dopóki @kAzek nie "machnie" czegoś podobnego i kompleksowego o Indy to ludzie się będą motać. No ale co my poradzimy, że nie potrafią myśłeć samodzielnie albo korzystać z dokumentacji czy przykłądów dołączonych do komponentów ;/

0

Oczywiste że Indy nie wykona następnej linii kodu póki trwa GET lub POST więc coś głupoty wypisujesz... Sypało błędami powiadasz? No zapewne tak gdy trafiło na stronę której z jakiegoś powodu nie dało się pobrać to wysoce prawdopodobne że wywaliło błąd (bo Indy rzuca wyjątkami w takich przypadkach) ale przecież wyjątki się obsługuje a jak to napisałem w temacie Laczenie z linkami z listboxa (ostatni post).

EDIT//
Co do pobrania samego źródła strony (czyli raczej chodzi o sam kod HTML) w TWebBrowser jest to dość toporne trzeba dość dużo doklepać... na starym dysku (nie podłączonym aktualnie) miałem gdzieś kod który to robił ale nie za bardzo mi się chce podłączyć tamten dysk albo klepać ten kod (którego większość pewnie pochodziła z Google, bo nawet nie pamiętam jak to się robiło) ale zawsze zamiast TWebBrowser można użyć TEmbeddedWB do pobrania http://www.bsalsa.com/downloads.html i w nim moze wybrać czy chcesz pobierać obrazki, animacje flash itd...

0

dobra to usiade do tego i sprobuje jeszcze raz i bede pisac co i jak :)

0

Czy pobranie kodu strony np. do komponentu memo jest dla serwera rownoznaczne z faktycznym wejsciem na taka strone
Pomijając kwestie logowania, wysyłania formularzy itp. - to z punktu widzenia serwera nie ma czegoś takiego jak „wejście na stronę”, tylko jest po prostu pobranie strony (źródła html, obrazków...).

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