Problem przy pobieraniu zrodla z webbrowser

0

Witam

Może ktoś się spotkał z podobnym problemem i zna rozwiązanie. Pobieram sobie źródło już wczytanej strony poprzez WebBrowser do komponentu Memo kodem:

Memo1.Text := WebBrowser1.OleObject.Document.documentElement.innerHTML;

i mam taką sytuację, że jak pobieram źródło strony na dwóch różnych komputerach to te źródła się między sobą różnie. Nieznacznie się różnią ale różnice się trafiają. Robię program, który wyciąga mi pewne dane ze strony i tworzy raport na tej podstawie. Zauważyłem, że jak zacznę coś modyfikować w ustawieniach globalnych IE (chodzi mi o bezpieczeństwo i poufności) i jak pobiorę źródło strony przed modyfikacjami i to samo źródło po modyfikacji to jak porównam te dwa kody to potrafią się różnić np. ułożeniem znaczników, trafiają się jakieś dodatkowe znaczniki, itp. Istnieje jakiś sposób aby za każdym razem i na każdym komputerze pobrany kod wyglądał identycznie. Wiem, że to może głupie pytanie, ponieważ strona na każdym komputerze się wyświetla identycznie ale jak pobieram to źródło to rzeczywiście są różnice

0

Istnieje jakiś sposób aby za każdym razem i na każdym komputerze pobrany kod wyglądał identycznie

Synapse?

0

Dokładnie jak napisał @-123oho Synapse będzie najpewniejsze i najprostsze, od biedy można jeszcze pomęczyć się z Indy - co kto woli. Można też mieć większą kontrolę nad pakietami rzeźbiąc w Socketach, ale wtedy standardowo bez obsługi HTTPS, używając modułu SimpleTCP z http://piechnat.pl/article/simpletcp.html - wszystko tylko nie używanie TWebBrowser do takich celów jak wyciągnięcie kodu strony, która nie potrzebuje JavaScriptu. Bo po co używać armaty do zabicia muchy. Poza tym nawet jeżeli pewne elementy kodu strony się zmieniają to chyba nie na tyle żeby nie mogło tego wychwycić i sparsować dobrze napisane wyrażenie regularne.

0

Może jak napisał przedmówca spróbuj z Indy.
Daj na TForm komponent TIdHTTP, a w kodzie:

AnsiString x = IdHTTP->Get("www.wp.pl");
0
cho3ek napisał(a):
AnsiString x = IdHTTP->Get("www.wp.pl");

chyba działy pomyliłeś.

1

O co się martwisz, o to że początkujący nie da rady podmienić strzałki na kropkę? Takiemu nawet NIE MA co podpowiadać.

Powiedział ten który gotowce rozdaje...
Zresztą, nie mam pojęcia jak chcesz to zrobić zamieniając tylko -> na kropkę skoro nie można zmiennych tak definiować w locie.
Może dla ciebie to nie problem że kod w danym dziale jest w innym języku ale moim zdaniem po coś ktoś wydzielił te działy. I bynajmniej nie po to żeby innymi językami pisać w innych działach. Nie sądzisz?

0

Chyba się jednak skuszę na synapse ale mam jeszcze pytanie co sadzicie o bibliotece "extactns"

i funkcji:

 function Download_HTM(const sURL, sLocalFileName:string): boolean;
begin
  Result:=True;
  with TDownLoadURL.Create(nil) do
  try
    URL:=sURL;
    Filename:=sLocalFileName;
    try
      ExecuteTarget(nil);
    except
      Result:=False
    end;
  finally
    Free;
  end;
end;   

Znalazłem takie coś do pobierania html na Torry's i zastanawiam sie czy bedzie to na innych komputerach dobrze pobierało kod (nie tak jak z tym WB co pisałem w pierwszym poście)

0

Znalazłem takie coś do pobierania html na Torry's i zastanawiam sie czy bedzie to na innych komputerach dobrze pobierało kod (nie tak jak z tym WB co pisałem w pierwszym poście)

Jak nie sprawdzisz to się nie przekonasz.

Synapse jest moim zdaniem najlepszą biblioteką sieciową do Pascala gdyż wspiera także linuxy i oferuje czyste połączenia jak i wysoko poziomowe api np. http,https,smtp i takie tam. Jeżeli planujesz coś większego pisać to najlepiej się nią zainteresować. Natomiast tak jak @olesio wspominał, są też prostsze rzeczy, które również spełniają swoje zadanie w twoim przypadku. Masz wiele wyborów, każdy poleca to co lubi. Nie licz na to że istnieje jedno dobre rozwiązanie bo istnieje ich wiele. Wybieraj co chcesz.

0

Pomęczyć się z Indy? W czym? Synapse nawet nie ma wbudowanej obsługi redirect więc w czym się można pomęczyć? Pobrana źródła strony to w indy 1 linia kodu gdzie widzisz te męki?

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