Cookie-Management mit PHP als Client

2 views
Skip to first unread message

Sebastian Suchanek

unread,
Nov 22, 2020, 6:08:08 AM11/22/20
to
Hallo NG!

Schon seit längerer Zeit betreibe ich "Site-Scraping" diverser
externer Webseiten per PHP. Das funktioniert auch soweit prima,
nicht zuletzt dank fertiger Skriptpakete wie "PHP Simple HTML
DOM Parser"[1].

Jetzt möchte ich allerdings auch externe Webseiten auslesen, die
nur über eine vorherige Anmeldung via HTML-Formular zugänglich
sind, d.h., ich komme um die Handhabung von Cookies, die mir der
externe Server schickt, nicht herum.
Bevor ich das Rad hier komplett neu erfinde: gibt es fertige
Frameworks, Skriptsammlungen o.ä., die ein solches Cookie-
Management beherrschen? (Wenn ja, welche?)
Google ist hier wenig hilfreich, weil man in aller Regel bei den
PHP-eigenen Funktionen zum clientseitigen Setzen von Cookies[2]
landet, die mir hier in diesem Fall natürlich nicht
weiterhelfen.


TIA,

Sebastian

_____
[1] https://simplehtmldom.sourceforge.io/
[2] https://www.php.net/manual/de/features.cookies.php

Karl Pflästerer

unread,
Nov 22, 2020, 3:46:27 PM11/22/20
to
Sebastian Suchanek <sebastian...@gmx.de> writes:

> Hallo NG!
>
> Schon seit längerer Zeit betreibe ich "Site-Scraping" diverser
> externer Webseiten per PHP. Das funktioniert auch soweit prima,
> nicht zuletzt dank fertiger Skriptpakete wie "PHP Simple HTML
> DOM Parser"[1].
>
> Jetzt möchte ich allerdings auch externe Webseiten auslesen, die
> nur über eine vorherige Anmeldung via HTML-Formular zugänglich
> sind, d.h., ich komme um die Handhabung von Cookies, die mir der
> externe Server schickt, nicht herum.
> Bevor ich das Rad hier komplett neu erfinde: gibt es fertige
> Frameworks, Skriptsammlungen o.ä., die ein solches Cookie-
> Management beherrschen? (Wenn ja, welche?)
> Google ist hier wenig hilfreich, weil man in aller Regel bei den
> PHP-eigenen Funktionen zum clientseitigen Setzen von Cookies[2]
> landet, die mir hier in diesem Fall natürlich nicht
> weiterhelfen.
>

Das Cookie Handling benötigst du beim Request. Die Bibliothek, die du
nutzt, verwendet file_get_contents. Den context kannst du übergeben.
(ich nehme an, dass du die file_get_html Funktion nutzt).

Du muss sehen, wie du dich bei den Websites per Skript anmelden kannst;
Cookie(s) dann aus dem response extrahieren und im Context übergeben.

Da die Arbeit beim Anmelden liegt und nicht beim Cookie Handling, musst
du dir hierfür eine Lösung suchen, die dir liegt. Guzzle bietet sich an,
da das Anmelden bei jeder Website meist anders funktioniert und du
diesen teil immer separat umsetzen musst.

BTW: ich würde um eine Lib, die Funktionen ohne Namespace oder
wenigstens ein prefix verwendet, einen großen Bogen machen.

Reply all
Reply to author
Forward
0 new messages