Advertisement
  1. Code
  2. PHP
Code

Wie man Metadaten automatisch aus Webseiten ausliest

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How to Scrape Web Pages for Metadata.
Using the New York Times API to Scrape Metadata

German (Deutsch) translation by Andreas Geibert (you can also view the original English article)

Final product image
What You'll Be Creating

Einleitung

Ich habe vor kurzen damit begonnen, eine Community-Seite, aufgesetzt auf dem Yii Framework, zu entwickeln. Dazu habe ich auch den Artikel Programming With Yii2: Building Community with Comments, Sharing and Voting (Envato Tuts+) verfasst. Ich wollte es einfach hinzufügen Links zu Inhalten auf der Website machen. Während es für Benutzer einfach ist, URLs Formulare einzufügen, wird es irgendwann doch sehr zeitaufwendig, wenn auch z.B. noch eine Titel oder weitere Informationen eingetragen werden müssen.

In unserem heutigen Tutorial zeige ich Dir, wie Du mit PHP Metadaten aus Webseiten automatisch auslesen kannst, damit Deine Benutzer mitmachen und interessante Services erstellen können.

Denk auch daran, dass Du im Diskussionsbereich weiter unten mitdiskutieren und mir schreiben kannst, was Du zu diesem Tutorial denkst und welche Vorschläge Du hast.Du kannst mich auch auf Twitter unter @lookahead_io anschreiben.

Los geht's

Erstelle zuerst ein Formular, in dem Deine Besucher Links eintragen können, indem Sie einfach eine URL einfügen. Zusätzlich habe ich noch einen Lookup Button erstellt, der über einen AJAX Request die jeweiligen Metadaten der eingegebenen Seite ausliest.

Web Scraping - Create Link form with Lookup button

Wird der Lookup Button gedrückt, wird die Funktion Link::grab() über Ajax aufgerufen:

Die gewünschten Daten auf der Webseite auslesen

Die Link::grab() Funktion ruft fetch_og() auf. Diese Funktion verhält sich wie ein Crawler, der den Quelltext der Webseite aufruft und sich die Metadaten über die Verwendung von DOMXPath holt:

In meinem Beispiel habe ich die og: Tags ersetzt. Der folgende Code hingegen, sucht nach verschiedenen Typen von Tags:

Du kannst also auch andere Tags, wie z.B. Keywords, die Description und vieles mehr, auslesen. Der jQuery Aufruf fügt das Ergebnis dann im Formular hinzu, welches der Benutzer dann absenden kann.

Web Scraping - Create Link with Resulting Title Filled In

Einen Schritt weiter gehen

Zusätzlich habe ich noch eine Datenbank-Tabelle mit Webseiten-URLs erstellt, auf die ich später in dieser Serie noch eingehe. Grundsätzlich speichern wir die Basis-Domain einer Adresse in dieser Source Tabelle, nachdem wir die eingegebene URL daraufhin geparst haben:

Vorerst speichern wir die Quellen-Namen so, dass Sie für den Benutzer gut lesbar sind. Beispiele sind ABC News, BoingBoing und Vice.

Web Scraping - Item page with completed links and clean sources

In einem späteren Tutorial werden wir dann hoffentlich noch sehen, wir wir frei verfügbare APIs verwenden, um den Namen einer Seite auszulesen. Ich finde es seltsam, dass es genau dafür keinen Metatag Standardgibt. Wenn das Internet doch perfekt wäre ...

Paywall Seiten

Manche Seiten, wie z.B. die New York Times, erlauben es nicht, dass man die Metadaten ihrer Seiten ausliest, da diese Unterseiten für das Lesen erst über ein Bezahlsystem freigeschaltet werden müssen. Aber sie stellen eine API zur Verfügung. Es ist nicht einfach diese API zu durchschauen, da die Dokumentation etwas verwirrend ist, die Entwickler helfen aber schnell via GitHub. Ich hoffe, dass ich zu diesem Thema, also dem Auslesen von Metadaten der Seiten der New York Times, in Zukunft auch noch ein Tutorial schreiben kann.

Fazit

Ich hoffe, dass Dir dieses Tutorial gefallen und geholfen hat und dass Du die erlernten Techniken bald in eigenen Projekten einsetzen kannst. Wenn Du die gezeigten Techniken einmal live und in Aktion sehen möchtest, kannst Du Dir meine Seite Active Together ansehen.

Wenn Du Fragen oder Anregungen hast, kannst Du diese in die Kommtare weiter unten eintragen. Du kannst mir auch direkt auf Twitter unter @lookahead_io anschreiben. Sie Dir auch unbedingt meine Instructor Seite und meine anderen Tutorialreihen, wie z.B. Building Your Startup With PHP und Programming With Yii2 an.

Weitere Links zum Thema

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.