Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

Hallo Zusammen,

ich "darf" hier für die Arbeit mich mit diversen Themen rumschlagen. Unter anderem geht es darum diverse Dateien von URLs herunter zu laden. Normalerweise nutze ich dazu "httpsend" aus der Synapse Bibliothek, das unterstützt auch https und reicht "meistens". Doch leider benötige ich dieses mal den DL von Dateien die in unserer Firmen internen AzureCloud bzw. auf dem Sharepoint liegen. Das bedeutet dass da im Hintergrund eine Saml Authentifizierung stattfinden muss an deren Nachbau ich kläglich gescheitert bin (ich bin jetzt nicht so der Web entwickler :( ).

Beim Philisophieren wie man dass denn lösen könnte, berichtete ein Kollege, dass Browser einen "Headless" mode haben, der wohl gerne bei Testsystemen eingesetzt wird. Eine kleine Google suche deutet Hoffnung an. Alle Browser die meine Firma einsetzt können bei Angabe der URL auch direkt die Benötigte Datei herunterladen.

Ausnahmsweise benötige ich diesmal keine OS unabhängige Variante (weil hier nur Windows im Einsatz ist :( ). Meine Firma nutz Firefox, Chrome und Edge. Was die Browser angeht bin ich also recht "frei".

Hat hier schon mal jemand einen Browser "headless" durch Lazarus angesteuert und darf den Code zeigen ?
--
Just try it

ArchChem
Beiträge: 83
Registriert: Mo 11. Jul 2022, 10:41

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von ArchChem »

Leider keine Erfahrung, aber das würde mich auch sehr interessieren... Ich würde darüber dann gerne Javascript-Code ausführen wollen :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

Also a bissl was hab ich bisher raus gefunden

Code: Alles auswählen

REM @echo off

setlocal

set "LDir=%~dp0"
set "URL=<Link auf .txt Datei die geladen werden soll"

REM Chrome
cd "C:\Program Files\Google\Chrome\Application"
REM chrome.exe --headless --disable-gpu --remote-debugging-port=9222 %URL%
chrome.exe --headless --disable-gpu --dump-dom "%URL%" 2>&1 > %LDir%log.txt

echo.
echo. Enter zum Verlassen
echo.
PAUSE

endlocal
Das geht zumindest dahingegen dass er eine log datei voll knallt mit lauter zeug dass ich nicht verstehe :/
--
Just try it

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von af0815 »

Du bekommst ganz einfach die Daten, so wie der Browser sie empfängt, ungerendert, unbearbeitet. Was sollte er dir sonst liefern ? DU musst dann auch schauen von welchen mime Typ die Datei und die gegebfalls richtig anfordern. Ich habe damit mal herumgespielt und nach einigen Frust aufgegeben, es ist im Prinzip dasselbe, was du mit Synapse bekommst.

Alternativ kann man versuchen das hier in den Griff bekommen https://en.wikipedia.org/wiki/Text-based_web_browser ala Lynx und das auf der Kommandozeile scripten.

Ich glaube da wäre dein erster Ansatz mit der Authentifizierung genauso einfach, weil im endeffekt muss du dich bei Headless auch wieder um alles selbst kümmern.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von MmVisual »

Ich hatte vor kurzem ebenfalls ein ähnliches Problem mit einer Web Abfrage, zwar nicht von einer Datei, sondern direkt von Daten mit extra OAuth2 Schlüssel:
viewtopic.php?p=139916#p139916

Der Befehl "curl" unter Linux hat mir sehr geholfen um das mit Synapse lösen zu können. curl hat den -v "Verbose" Schalter, wo man genau sieht was da passiert. Wenn das mit curl klappt, dann bekommt man das auch mit Synapse hin.

Ansonsten gibt es ein OneDrive Demo in den FPC Sourcen:
C:\lazarus\fpc\3.2.2\source\packages\odata\examples\onedrive

Und hier gibt es ein:
c:\lazarus\fpc\3.2.2\source\packages\googleapi\src\googledrive.pp

Jedoch habe ich beides noch nicht benutzt. Vielleicht hilft das.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von af0815 »

MmVisual hat geschrieben:
Fr 1. Mär 2024, 08:40
Ansonsten gibt es ein OneDrive Demo in den FPC Sourcen:
C:\lazarus\fpc\3.2.2\source\packages\odata\examples\onedrive

Und hier gibt es ein:
c:\lazarus\fpc\3.2.2\source\packages\googleapi\src\googledrive.pp

Jedoch habe ich beides noch nicht benutzt. Vielleicht hilft das.
Ich betrachte die Demos von googleapi mit Vorsicht. Meiner Erfahrung nach hat Google die API schneller geändert, als das sich im Beispiel wiederspiegelt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von MmVisual »

Mit den Google Dingen bin ich auch unzufrieden.
Vor einigen Jahren hatte ich mal eine kleine App geschrieben ... mit der aktuellen Entwicklungsumgebung kann man die nicht einmal mehr öffnen. Entweder man ist Vollprofi (und macht jedes Update mit, samt Code umschreiben) oder man lässt die Finger weg.
Ich hätte da was besseres von Google erwartet, zumal da nur einfache Standard Komponenten verwendet waren.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

Also bei den Demos braucht man zig zugangsdaten, da muss ich erst mal raus bekommen wo ich die her bekomme.

Das Curl hab ich lustigerweise in Windows auch:

Code: Alles auswählen

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP>:<Port>...
* Connected to <url> (<IP>) port <port>
* schannel: disabled automatic use of client certificate
* ALPN: curl offers http/1.1
* ALPN: server did not agree on a protocol. Uses default.
* using HTTP/1.x
> GET /:t:/r/sites/Test.txt HTTP/1.1

> Host: <url>

> User-Agent: curl/8.4.0

> Accept: */*

> 

< HTTP/1.1 301 Moved Permanently

< Content-Type: text/plain

< Location: <url of file>

< Server: Microsoft-IIS/10.0

< X-NetworkStatistics: 0,132096,0,0,76,0,24376

< SPRequestGuid: <guid>

< request-id: <guid>

< MS-CV: oRC0WQfwAIA8N+r5k81ohg.0

< Strict-Transport-Security: max-age=31536000

< SPRequestDuration: 5

< SPIisLatency: 2

< X-Powered-By: ASP.NET

< MicrosoftSharePointTeamServices: 16.0.0.24614

< X-Content-Type-Options: nosniff

< X-MS-InvokeApp: 1; RequireReadOnly

< P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"

< Date: Fri, 01 Mar 2024 08:19:22 GMT

< Content-Length: 0

< 


  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host <url> left intact

Der erstellt auch die Datei mit dem korrekten Namen, die ist aber leider leer, geht also mit Curl leider auch nicht :(
--
Just try it

martin_frb
Beiträge: 573
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von martin_frb »

Also ich halte headless browser für "overkill". Hab's auch selber noch nicht mit Lazarus genutzt.

Aber, wenn doch, hier ist ein Einstiegspunkt: https://www.selenium.dev/
Außerdem: https://wiki.freepascal.org/CEF4Delphi

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von six1 »

Also mit CEF4Delphi habe ich schon gearbeitet... wie du bereits formuliert hast: Overkill
Gruß, Michael

paweld
Beiträge: 10
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von paweld »

Grüße / Pozdrawiam
paweld

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

@paweld
Also ansich liest sich das ja toll, aber zum laufen habe ich es leider nicht bekommen, ggf mache ich aber auch was falsch..

Getestet habe ich es unter Windows 10 mit Firefox und Chrome
in beiden habe ich die Selenium Erweiterung installiert.
Die Chrome Variante kann laut errorlog irgend ein Binary nicht finden, behauptet aber auch gleichzeitig, dass der Socket bereits verwendet wäre.
Die FF Varinte stürzt ab, weil das JSON dass da zurück kommt angeblich nicht Parsbar sei, mein selbst geschriebender JSON_Analyzer zeigt aber an, dass es gültiges JSON ist..
Ich spiel mal noch ein bisschen damit rum, suspekt ist auf jeden Fall aber auch, das man da diese *driver.exe files benötigt wo man nicht weis was drin ist ...
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

six1 hat geschrieben:
Fr 1. Mär 2024, 11:41
Also mit CEF4Delphi habe ich schon gearbeitet... wie du bereits formuliert hast: Overkill
Also das CEF hab ich nun auch getestet. Dort die "BrowserWindow" demo. sobald ich mich dann auf unseren Firmen Internen Sharepoint einwählen will, fragt er mich nach meinen Zugangsdaten die gebe ich ein, und dann lädt es und hört nicht mehr auf zu laden, das geht also leider auch nicht :(
--
Just try it

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von six1 »

Ich habe damals Abstand davon genommen, weil ich das nicht aktuell halten kann...
Gruß, Michael

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Hat wer Erfahrungen mit headless Browsern und Lazarus ?

Beitrag von corpsman »

Ja, je mehr ich mich damit beschäftige, desto mehr drängt sich mir der Wunsch auf, dass mittels httpsend selbst zu machen. Versucht habe ich es ja hier schon mal...
--
Just try it

Antworten