Joopi
[PHP] Links und Bilder von Webseiten auslesen - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [PHP] Links und Bilder von Webseiten auslesen (/showthread.php?tid=90)



Links und Bilder von Webseiten auslesen - Joopi - 07-01-2023

Via PHP erstelle ich Skripte, die ich für das Sammeln von Links und Bildern benutze.

1 - Webseite abspeichern

Gefällt mir eine Webseite und sind darauf Links und/oder Bilder, die mich interessieren, speichere ich diese Webseite als html-Datei ab.

Zitat:Wenn die Webseite via Google als html-Datei gespeichert wird, wird lediglich diese Datei angelegt.

Sofern aber die Webseite via FireFox gespeichert wird, wird gleichzeitig alles, was mit der Webseite zusammenhängt, gespeichert. Also auch Bilder, JavaScript-Dateien, CSS-Dateien usw.

Die html-Datei liegt in einem Verzeichnis.

2 - gefundene Links in Datei schreiben

In einem zweiten Schritt wird mit dem Skript php_http_link_auslesen.php diese Datei nach Links abgesucht.

Der Suchstring ist: https://

Dieser Suchstring mit mit REGEX wie folgt gefunden:

Code:
$suche = '/"https:\/\/(.+)\s*"/isU';

Jeder einzelne Fund wird dann in eine txt-Datei geschrieben, die alle Links aufnimmt.

3 - verlinkte Webseiten herunterladen

In der in Schritt 2 erstellen txt-Datei enthalten Links werden nun mit dem Skript php_http_linkdatei_auslesen.php abgefragt. Die Webseiten, die mit den Links gefunden werden, werden wiederum abgespeichert. Die Speicherung erfolgt mit einem Standarddateinamen sowie einer hochzuzählenden Nummer.

4 - gespeicherten html-Dateien nach Bilderlinks durchsuchen

Sofern die hmtl-Dateien gespeichert wurden, um z.B. Bilder daraus herunterzuladen, wird dies mit dem Skript php_img_src_auslesen_2.php erledigt. Sofern die Webseiten nicht geschützt sind, ist das Herunterladen der Bilder und deren Verwendung für mich - also ohne weitere Veröffentlichung meinerseits - erlaubt. Ich begehe damit keine Urheberschutzverletzungen.

Die Bilder erhalten ebenfalls einen Standardnamen und eine Zufallszahl. Die Echtnamen sind oftmals doppelt und würden nur Ärger machen. Mit der Zufallszahl und dem Standardnamen geht es einigermaßen gut.

Der Suchbegriff nach dem Bildlink ist nicht eindeutig. Es gibt die verschiedensten Möglichkeiten, wie ein Bild in den html-Seiten eingebracht und/oder verlinkt sein kann. Hier muss über eine Liste von Möglickheiten nach der richtigen gesucht werden. Das ist aber noch nicht eingebaut (Stand: 22.12.2021).

Die Liste der Möglichkeiten ist lang und wird noch zu ergänzen sein.

5 - Zufallsdateiname

Anstelle der Zufallsnummer, kann auch ein Zufallsstring erzeugt werden. Dazu könnte man aus dem ASCII-Zeichensatz Zahlen und Buchstaben nutzen:
  • Zahlen 0 - 9 = Position in der ASCII-Tabelle 48 - 57
  • Buchstaben a - z = Position in der ASCII-Tabelle 97 - 122
  • Buchstaben A - Z = Position in der ASCII-Tabelle 65 - 90

Ein fünfstelliger Zufallsdateiname nur aus Kleinbuchstaben könnte wie folgt erzeugt werden:

PHP-Code:
<?php
    $dateineu 
chr(rand(97,122)) . chr(rand(97,122)) . chr(rand(97,122)) . chr(rand(97,122)) . chr(rand(97,122)).".txt";
?>

Damit wäre die Datei, die die Links aufnimmt mit einem Standard-Dateinamen ausgestattet und die neu erzeugte Datei wird in ein Verzeichnis verschoben und mit dem Zufallsdateinamen abgespeichert. Das könnte im Skript wie folgt aussehen:

PHP-Code:
<?php
    copy
($linkdatei$pfadlinks.$dateineu);

?>