![]() |
Wie http-Server bestimmten Browser vorgaukeln?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich benutze bereits seit längerem erfolgreich die Function URL2HTML, die ich vor Jahren in den Weiten des Netzes gefunden hatte. Scheinbar ist sie nicht mehr existent; jedenfalls hilft mir die weltgrößte Suchmaschine nicht, weshalb ich den Quelltext angehängt habe. Ich frage damit Seiten aus meinem Intranet und auch aus dem Internet ab. Wenn ich aber z.B. versuche, die Seite von swoodoo zu scrapen, speichert er mir die Seite als html. Allerdings steht bloß für mich nicht brauchbare Werbung drin und der Hinweis: "Der von Ihnen verwendete Webbrowser funktioniert möglicherweise nicht wie erwartet. • Internet Explorer 8 installieren • Firefox installieren • Safari installieren • Chrome installieren" Kann ich - und falls ja wie - der Abfrage irgendwie mitgeben, dass ich ein aktueller Browser (FF22, IE11 etc.) bin? Gruß & Dank, Alex |
AW: Wie http-Server bestimmten Browser vorgaukeln?
Das Entscheidende ist da der Useragent. Den musst du auf einen Wert setzen, der einem Browser entspricht.
Falls das bei deiner Funktion nicht geht, würde ich Indy und TIdHttp empfehlen... |
AW: Wie http-Server bestimmten Browser vorgaukeln?
Danke für die Antwort.
Zitat:
Delphi-Quellcode:
. Wenn ich
InternetOpen();
![]() ![]() In meinem Programm müsste ich doch dann den String
Delphi-Quellcode:
einfach bloß durch z.B.
'InetURL:/1.0'
Delphi-Quellcode:
ersetzen, oder?
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
Zitat:
|
AW: Wie http-Server bestimmten Browser vorgaukeln?
Zitat:
Delphi-Quellcode:
uses
IdHttp; var HttpLoader: TIdHttp; PageContents: String; begin HttpLoader := TIdHttp.Create; try PageContents := HttpLoader.Get('http://www.example.com'); finally HttpLoader.Free; end; end; |
AW: Wie http-Server bestimmten Browser vorgaukeln?
Also es gibt eigentlich keinen Grund auf Indy zu wechseln wenn man ausschlieslich HTTP/HTTPS machen möchte.
Mit Indy holt man sich eine Unmenge von Units auf den Rechner, von denen man aber nur einen Bruchteil für HTTP benötigt. Um mit WinInet den UserAgent zu setzen kannst du die Funktion ![]() Ungefähr so:
Delphi-Quellcode:
PS:
if not HttpAddRequestHeaders(
hRequest, 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'#13#10, -1, HTTP_ADDREQ_FLAG_ADD or HTTP_ADDREQ_FLAG_REPLACE ) then RaiseLastWin32Error; ich sehe gerade, dass es auch so wie von dir vorgeschlagen gehen müsste: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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