![]() |
TIdHTTP und Javascript / Refresh
Hi,
unterstuetzt die TIdHTTP Komponente Javascript? :gruebel: Ich bekomme immer den Fehler (von der Website), dass Javascript ausgeschaltet ist. Kann man es anschalten, simulieren oder gibt es Alternative Komponenten die das unterstuetzen? //Edit: Das Problem ist, das es auf der Website einen Counter gibt, der die Sekunden runter zaehlt. (20,19,18,...) und wenn er bei 0 ist wird eine andere Website geladen, funktioniert bei dem TWebbrowser auch einwandfrei, aber mit idhttp will es nicht so ganz. Vieleicht unterstuetzt idhttp ja Javascript, aber es aktuallisiert den Sourcecode nicht. Gibt es eine Moeglichkeit den Aktuellen Sourcecode von einer Website erneut auszulesen, ohne das man die genaue URL kennt? Ich sende etwas mit .post() an die Seite und werde weitergeleitet, deswegen ist mit die genaue URL nicht bekannt. danke & ciao |
Re: TIdHTTP und Javascript / Refresh
Hi,
Zitat:
Zitat:
Grüße vom marabu |
Re: TIdHTTP und Javascript / Refresh
Danke fuer deine Antwort.
Ich habs schon mit dem TWebbrowser realisiert, noch bevor ich mir den Idhttp client angeguckt habe :lol:. Das Problem ist beim TWebBrowser ist aber, dass der Datei-Download immer von IE(TWebbrowser) ausgefuehrt wird, ich moechte das gerne manuell machen. Gibt es denn eine Moeglichkeit die download funktion des TWB durch eine eigene zuersetzten? ciao |
Re: TIdHTTP und Javascript / Refresh
Na klar.
Bei interaktivem Einsatz kannst du im Ereignis OnBeforeNavigate() dazwischenfunken. Ansonsten extrahierst du den benötigten Link und verwendest Indy zum Herunterladen. marabu |
Re: TIdHTTP und Javascript / Refresh
Zitat:
Zitat:
|
Re: TIdHTTP und Javascript / Refresh
Wenn der Download durch einen Klick auf einen Link initiiert wurde, dann kannst du im genannten event handler Cancel auf True setzen und den Download in die eigene Hand nehmen. Ich denke aber, dass du automatisch Laden möchtest, also sollten wir vielleicht lieber den Fehler auf deinem anderen Weg finden.
marabu |
Re: TIdHTTP und Javascript / Refresh
Ich denke mal das Problem ist, das die Seite checkt ob der download wirklich auch von dem "downloader" (wb, idhttp) initialisiert
wurde, und wenn nicht wird der download verweigert. Ich habe leider keine Ahnung wie eine Webseite sowas ueberpruefen koennte. Und wie man der Seite vormachen kann, das der IdHttpClient den download gestartet hat und nicht der WB. |
Re: TIdHTTP und Javascript / Refresh
Vielleicht hast du dich vorher anmelden müssen und es gibt eine session-id die versteckt mitgeführt wird - oder es wurde ein cookie gesetzt - oder es wird der Referer überprüft. Zumindest diese Fälle lassen sich mit Indy behandeln.
marabu |
Re: TIdHTTP und Javascript / Refresh
Zitat:
Kann man den referer aus einem Wb auslesen? Setzen ist ja mit idhttp kein Problem. // TWebbrowser.OleObject.Document.referrer Es gibt zwar eine sessionid, die ist aber bei jedem Klick auf den button gleich, sie aender sich nur wenn man erneut die 20 sekunden wartet. //Edit: Cookie und referrer haben damit nix zu tun. Wie kann man denn die SessionID bei dem Idhttpclient simulieren? |
Re: TIdHTTP und Javascript / Refresh
Die SessionId kann im URL oder als hidden field mitgeführt werden. Wenn du mit FireFox unterwegs bist, dann kannst du recht einfach die page info untersuchen um Hinweise zu erhalten.
marabu |
Re: TIdHTTP und Javascript / Refresh
Also die Sid ist in der URL gespeichert, die download URL sieht immer so aus :
Code:
wobei die erste Zahl abhaenig von dem download ist und die zweite immer neu generiert wird.
url/files/16980168/1769675284/filename.ext
Gibt es da eine Moeglichkeit, das zu umgehen, so das der Idhttp client funktioniert? win32 |
Re: TIdHTTP und Javascript / Refresh
Wenn du den deiner Meinung nach korrekten URL per Indy HTTP-Client übermittelst und trotzdem abgewiesen wirst, dann ist der URL allein wohl nicht der Schlüssel zu deinem Glück und du musst etwas tiefer bohren. Vielleicht solltest du eine erfolgreiche Session im Browser einmal mitschneiden und den traffic vergleichen um festzustellen, was schief läuft. Da die Seite nicht öffentlich zu sein scheint, kann ich dir wohl nicht weiter helfen.
marabu |
Re: TIdHTTP und Javascript / Refresh
Ok, dann werde ich mal mal ans sniffen machen, die Seite ist oeffentlich, aber ich bin mir nicht ganz sicher ob es so legal ist.
Es geht um ![]() Wenn jemand noch was einfaellt bitte Posten. danke. |
Re: TIdHTTP und Javascript / Refresh
Über die Vorlieben von rapidShare habe ich nichts gelesen, aber die Automatisierung sollte etwa so möglich sein: du nimmst deine Indy HTTP-Client Komponente und lädst per Get() den Download-URL. Anschließend musst du den erhaltenen Code parsen (MSHTML) und den Action-URL extrahieren. Deinen file holst du dann mit Post() und den zusätzlichen Parametern "uri" (hidden) und "dl.start", deren Werte du ebenfalls extrahieren musst.
marabu |
Re: TIdHTTP und Javascript / Refresh
Zitat:
Wenn ich post mit dl.start=1 (klick auf free) an den Rapidshare link sende, komme ich wieder zu meinem Anfangs Problem : TIdHTTP unterstuetzt kein javascript um dem Countdown auszuwerten ... Oder verstehe ich dich da falsch? Ich habe hier mal eine ![]() (Klick auf Free, Countdown abwarten, Security Code eingeben, Download) ciao w32 |
Re: TIdHTTP und Javascript / Refresh
mal ganz ehrlich: such dir n anderen hoster... wie willst du denn das captcha knacken, wenn du erstmal so weit kommst?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz