Heim >Backend-Entwicklung >PHP-Tutorial >Diffbot: Krabbeln mit visuellem maschinellem Lernen

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Jennifer Aniston
Jennifer AnistonOriginal
2025-02-20 12:44:11885Durchsuche

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Key Takeaways

  • Diffbot ist ein „visueller Lernroboter“, der maschinelles Lernen zum Krabbeln von URLs und zum extrahierenden Daten nutzt, wodurch eine zuverlässigere und menschlichere Interpretation von Webinhalten als herkömmliche Webcrawlers bietet.
  • Die Diffbot -API rendert Seiten vollständig, einschließlich JavaScript -Inhalte, und ermöglicht die Extraktion einer Vielzahl von Datentypen von Webseiten, einschließlich Text, Bildern, Videos und Metadaten wie dem Autor oder dem Veröffentlichungsdatum.
  • .
  • Die benutzerdefinierte API -Funktion von DiffBOT ermöglicht es Benutzern, vorhandene Diffbot -APIs zu optimieren oder vollständig neue für die benutzerdefinierte Inhaltsverarbeitung zu erstellen, um die Extraktion bestimmter Datenelemente aus dem Quellcode zu aktivieren.

Haben Sie sich jemals gefragt, wie soziale Netzwerke URL -Vorschau so gut machen, wenn Sie Links teilen? Woher wissen sie, welche Bilder zu sich nehmen, wen Sie als Autor zitieren sollen oder welche Tags an die Vorschau angeschlossen werden sollen? Ist alles mit komplexen Regexen über den Quellcode gekriecht? Meistens ist es nicht so. In der Quelle definierte Meta -Informationen können unzuverlässig sein, und Websites mit weniger als herausragender Ruf verwenden sie häufig als Keyword -Fluggesellschaften, um Suchmaschinen dazu zu bringen, sie höher zu bewerten. Sehen wir nicht das, was wir, die Menschen, vor uns sehen, was überhaupt wichtig ist?

Wenn Sie einen URL -Vorschau -Snippet oder einen Nachrichtenaggregator erstellen möchten, gibt es viele automatische Crawler online, sowohl proprietär als auch open Source, aber Sie finden selten etwas so Nische wie visuelles maschinelles Lernen. Genau das ist Diffbot - ein „visueller Lernroboter“, der eine URL, die Sie anfordern

Nachdem wir eine Theorie behandelt haben, werden wir in diesem Beitrag einen Demo -API -Anruf an einem der Beiträge von SitePoint durchführen.

PHP -Bibliothek

Die PHP -Bibliothek für Diffbot ist etwas veraltet, und als solche werden wir sie in dieser Demo nicht verwenden. Wir werden rohe API -Anrufe durchführen und in einigen zukünftigen Beiträgen unsere eigene Bibliothek für die API -Interaktion erstellen.

Wenn Sie sich die PHP -Bibliothek trotzdem ansehen möchten, siehe hier und wenn Sie an Bibliotheken für andere Sprachen interessiert sind, hat Diffbot ein Verzeichnis.

Update, Juli 2015: Seit Veröffentlichung dieses Artikels wurde eine PHP -Bibliothek entwickelt. Sehen Sie sich hier den gesamten Entwicklungsprozess oder den Quellcode hier an.

JavaScript -Inhalt

Wir sagten im Einführungsabschnitt, dass Diffbot die Anfrage vollständig macht und sie dann analysiert. Aber was ist mit JavaScript -Inhalten? Heutzutage rendern Websites häufig einige HTML über der Falte und beenden dann die CSS-, JS- und Dynamic -Inhalte, die danach geladen werden. Kann die Diffbot -API das sehen?

Tatsächlich

Ja, ja. Diffbot rendert die Seite buchstäblich vollständig und inspiziert sie dann visuell, wie in meinem Stackoverflow -Q & A erläutert. Es gibt jedoch einige Einschränkungen. Stellen Sie also sicher, dass Sie die Antwort sorgfältig lesen.

Preisgestaltung und API -Gesundheit

Diffbot hat mehrere Verwendungsstufen. Es gibt eine kostenlose Testebene, die Ihr API -Token nach 7 Tagen oder 10000 Anrufen tötet, je nachdem, was zuerst kommt. Die kommerziellen Token können zu verschiedenen Preisen gekauft werden und läuft niemals ab, haben jedoch Einschränkungen. Open Source- und/oder Bildungsprojekte, die ein älteres Modell des kostenlosen Tokens liefern - 10.000 Anrufe pro Monat, einmal pro Sekunde max, liefert ein Sonderfall nach Fall. Sie müssen sie direkt kontaktieren, wenn Sie glauben, dass Sie sich qualifizieren.

Diffbot garantiert eine hohe Verfügbarkeit, aber manchmal passieren Misserfolge - insbesondere in der ressourcenintensivsten API des Haufen: Crawlbot. Crawlbot wird verwendet, um ganze Domänen zu kriechen, nicht nur einzelne Seiten und als solche eine geringere Zuverlässigkeitsrate als andere APIs. Nicht viel, sondern genug, um im API -Gesundheitsbildschirm auffällig zu sein - auf dem Bildschirm, den Sie überprüfen können, um festzustellen, ob eine API in Betrieb ist oder derzeit nicht verfügbar ist, wenn Ihre Anrufe auf Probleme oder Rückgabefehler 500 eingehen.

Demo

Um Ihre Umgebung vorzubereiten, starten Sie bitte ein Gehöft verbessert.

Projekt erstellen

Erstellen Sie ein Starter-Laravel-Projekt, indem Sie mit Vagrant SSH in den VM in den Codeordner eingehen und den Komponisten erstellen, project laravel/laravel Laravel-Prefer-Dist. Auf diese Weise können Sie über http://homestead.app:8000 aus dem Browser des Hosts auf die Laravel -Grußseite zugreifen.

Fügen Sie eine Route und Aktion hinzu

in App/Routes.php fügen Sie die folgende Route hinzu:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>

In App/Controllern/Homecontroller fügen Sie die folgende Aktion hinzu:

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>

Wenn http://homestead.app:8000/diffbot jetzt auf dem Bildschirm "Hallo" ausgibt, können wir mit der API mit dem Spielen beginnen.

Holen Sie sich ein Token

Um mit der Diffbot -API zu interagieren, benötigen Sie ein Token. Melden Sie sich für eine auf ihrer Preisseite an. Um diese Demo willen, nennen wir unser Token $ token, und wir werden sie als solche in URLs bezeichnen. Ersetzen Sie $ token gegebenenfalls durch Ihren eigenen Wert.

Guzzle

installieren

Wir werden Guzzle als unseren HTTP -Client verwenden. Es ist nicht erforderlich, aber ich empfehle, dass Sie sich damit durch einen früheren Artikel von uns vertraut machen.

Fügen Sie Ihrem Composer.json den "gnuzzleHttp/guzzle": "4.1.*@dev" hinzu, so

"require": {
		"laravel/framework": "4.2.*",
        "guzzlehttp/guzzle": "4.1.*@dev"
	},
Führen Sie im Projektroot den Komponisten -Update aus.

Artikeldaten

abrufen

Im ersten Beispiel werden wir einen SitePoint -Beitrag mit der Standardartikel -API von Diffbot kriechen. Dazu beziehen wir uns auf die Dokumente, die hervorragende Arbeit bei der Erläuterung des Workflows leisten. Ändern Sie den Körper der Diffbotdemo -Aktion in den folgenden Code:

<span>public function diffbotDemo() {
</span>
        <span>$token = "<span><span>$TOKEN</span>"</span>;
</span>        <span>$version = 'v3';
</span>
        <span>$client = new GuzzleHttp<span>\Client</span>(['base_url' => 'http://api.diffbot.com/']);
</span>
        <span>$response = $client->get($version.'/article', ['query' => [
</span>            <span>'token' => $token,
</span>            <span>'url' => 'https://www.sitepoint.com/7-mistakes-commonly-made-php-developers/'
</span>        <span>]]);
</span>
        <span>die(var_dump($response->json()));
</span>    <span>}</span>
Zuerst haben wir unser Token festgelegt. Dann definieren wir eine Variable, die die API -Version enthält. Als nächstes liegt es an uns, einen neuen Kunden zu erstellen, und wir geben ihm auch eine Basis -URL, sodass wir ihn nicht jedes Mal eingeben müssen, wenn wir eine andere Anfrage stellen.

Als nächstes erstellen wir ein Antwortobjekt, indem wir eine GET -Anforderung an die URL der API senden, und wir fügen ein Array von Abfrageparametern in Key => Wertformat hinzu. In diesem Fall passieren wir nur am Token und der URL, die grundlegendsten Parameter.

Da die Diffbot -API JSON -Daten zurückgibt, verwenden wir die JSON () -Methode von Guzzle, um sie automatisch in ein Array zu dekodieren. Wir zeichnen diese Daten dann ziemlich ab:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Wie Sie sehen, haben wir einige Informationen ziemlich schnell zurückbekommen. Es gibt das Ikone, das verwendet wurde, eine Vorschau des Textes, der Titel, sogar die Sprache, das Datum und die HTML wurden zurückgegeben. Sie werden jedoch feststellen, dass es keinen Autor gibt. Ändern wir dies und fordern Sie einige weitere Werte an.

Wenn wir der Liste der Abfrageparameter den Parameter „Felder“ hinzufügen und ihm einen Wert von „Tags“ geben, versucht Diffbot, Tags/Kategorien aus der bereitgestellten URL zu extrahieren. Fügen Sie diese Zeile dem Abfragearray hinzu:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>

und ändern

<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>
Auf dem Bildschirm erfrischen Sie uns jetzt Folgendes:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Aber der Quellcode des Artikels stellt einige andere Tags fest:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Warum ist das Ergebnis so sehr unterschiedlich? Genau auf den Grund, warum wir am Ende des ersten Absatzes dieses Beitrags erwähnt haben: Was wir Menschen sehen, hat Vorrang. Diffbot ist ein visueller Lernroboter, und als solches wird die KI die Tags von dem tatsächlichen gerenderten Inhalt abziehen - was es sehen kann - und nicht davon, den Quellcode zu betrachten, der viel zu leicht für SEO -Zwecke aufgebaut ist.

Gibt es eine Möglichkeit, die Tags aus dem Quellcode zu erhalten, wenn man sie wirklich braucht? Können wir diffbot den Autor in SitePoint -Artikeln anerkennen lassen? Ja. Mit der benutzerdefinierten API.

Meta -Tags und Autor mit benutzerdefinierter API

Die benutzerdefinierte API ist eine Funktion, mit der Sie nicht nur die vorhandene Diffbot -API nach Ihren Wünschen durch Hinzufügen neuer Felder und Regeln für die Extraktion des Inhalts optimieren können, sondern auch vollständig neue APIs erstellen können (auf eine dedizierte URL zugegriffen). Für die benutzerdefinierte Inhaltsverarbeitung.

Gehen Sie zum Dev Dashboard und melden Sie sich mit Ihrem Token an. Dann gehen Sie in "benutzerdefinierte API". Aktivieren Sie unten die Registerkarte "Eine Regel erstellen" und geben Sie die URL des Artikels ein, die wir in das URL -Feld kriechen, und klicken Sie dann auf Test. Ihr Bildschirm sollte ungefähr so ​​aussehen:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Sie werden sofort bemerken, dass das Feld des Autors leer ist. Sie können die Regel der Autorsuche optimieren, indem Sie daneben klicken und das Autorenelement im geöffneten Live-Vorschau-Fenster finden, und dann darauf klicken, um das gewünschte Ergebnis zu erhalten. Aufgrund einiger weniger als perfekter CSS am Ende von SitePoint ist es jedoch sehr schwierig, die API von Diffbot mit einem konsistenten Weg zum Autornamen zu liefern, insbesondere durch Klicken auf Elemente. Fügen Sie stattdessen die folgende Regel manuell hinzu: .Contributor-large .Contributor_name a und klicken Sie auf Speichern.

Sie werden feststellen

Diffbot: Krabbeln mit visuellem maschinellem Lernen

In der Tat wird diese neue Regel automatisch auf alle SitePoint -Links für Ihr Token angewendet. Wenn Sie versuchen, einen weiteren SitePoint -Artikel wie diesen voranzutreiben, werden Sie feststellen, dass Peter Nijssen erfolgreich extrahiert wird:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Ok, ändern wir die API weiter. Wir brauchen den Artikel: Tag -Werte, die im Quellcode sichtbar sind. Dies erfordert einen zweistufigen Prozess.

Schritt 1: Definieren Sie eine Sammlung

Eine Sammlung ist genau das, wonach sie sich anhört - eine Sammlung von Werten, die über einen bestimmten Regeln erfasst wurden. Wir nennen unsere Sammlung "Metatags" und geben ihr den folgenden Selektor: Meta [Eigenschaft = Artikel: Tag]. Dies bedeutet „Finden Sie alle Meta -Elemente in der HTML, die das Eigenschaftsattribut mit dem Wertartikel haben: Tag“.

Schritt 2: Sammlungsfelder

definieren

Sammlungsfelder sind einzelne Einträge in einer Sammlung - in unserem Fall die verschiedenen Tags. Klicken Sie auf "Zu dieser Sammlung fügen Sie ein benutzerdefiniertes Feld hinzu" und fügen Sie die folgenden Werte hinzu:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Klicken Sie auf Speichern. Sie haben sofort Zugriff auf die Liste der Tags im Ergebnisfenster:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

Ändern Sie die endgültige Ausgabe der DiffbotDemo () -Aktion in dieser Stelle:

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
Wenn Sie jetzt die URL aktualisieren, mit der wir getestet haben (http://homestead.app:8000/diffbot), werden Sie feststellen, dass die Werte des Autors und der Meta -Tags vorhanden sind. Hier ist die Ausgabe, die die obige Codezeile erzeugt:

Diffbot: Krabbeln mit visuellem maschinellem Lernen

wir haben unsere Tags!

Schlussfolgerung

Diffbot ist ein leistungsstarker Datenextraktor für das Web-ob Sie viele Websites in einen einzelnen Suchindex konsolidieren müssen, ohne ihre Back-Ends zu kombinieren, einen Nachrichtenaggregator zu erstellen, eine Idee für eine URL-Vorschau-Webkomponente oder eine URL-Vorschau-Webkomponente haben möchten oder Diffbot kann regelmäßig den Inhalt der öffentlichen Preislisten der Teilnehmer öffentlichen. Mit toten einfachen API -Aufrufen und hoch strukturierten Antworten werden Sie in kürzester Zeit in Betrieb sein. In einem späteren Artikel werden wir eine brandneue API für die Verwendung von Diffbot mit PHP erstellen und die obigen Anrufe mit ihr wiederholen. Wir hosten die Bibliothek auch auf Packagist, sodass Sie sie problemlos mit Komponisten installieren können. Bleib dran!

häufig gestellte Fragen (FAQs) zu Diffbot

Was ist die primäre Funktion von Diffbot? Es wurde entwickelt, um Webseiten auf die gleiche Weise zu verstehen wie ein Mensch, was es zu einem leistungsstarken Werkzeug für die Datenextraktion macht. Diffbot kann verwendet werden, um Daten von Social -Media -Websites, Nachrichtenartikeln, Produktseiten und vielem mehr zu sammeln. Es ist besonders nützlich für Unternehmen, die große Datenmengen schnell und genau sammeln müssen. und Webseiten interpretieren. Es verwendet Algorithmen, um die Struktur und den Inhalt einer Webseite zu analysieren und dann relevante Daten basierend auf dieser Analyse zu extrahieren. Dies ermöglicht es Diffbot, Webseiten auf eine Weise zu verstehen, die dem wie ein Mensch ähnelt, und es zu einem leistungsstarken Werkzeug für die Datenextraktion ist. Eine breite Palette von Datentypen von Webseiten. Dies umfasst Text, Bilder, Videos und mehr. Es kann auch Metadaten extrahieren, z. B. den Autor einer Webseite oder das Datum, an dem sie veröffentlicht wurde. Dies macht Diffbot zu einem vielseitigen Tool für die Datenextraktion, das eine breite Palette von Informationen aus dem Web sammeln kann. die Verwendung von Technologie für maschinelles Lernen. Es wurde entwickelt, um Webseiten genauso zu verstehen wie ein Mensch, was es ihm ermöglicht, relevante Daten genau zu identifizieren und zu extrahieren. Wie jedes Tool kann seine Genauigkeit jedoch von der Komplexität der Webseite und der Art der extrahierten Daten abhängen. Daten aus Social -Media -Websites extrahieren. Dies schließt Websites wie Facebook, Twitter und LinkedIn ein. Es kann Daten wie Beiträge, Kommentare, Likes und Shares sammeln und es zu einem nützlichen Instrument für die Analyse der Social -Media -Analyse und die Marketingforschung machen.

Ist Diffbot einfach zu bedienen? Wie bei jedem Tool kann es jedoch eine Lernkurve für neue Benutzer geben. Glücklicherweise bietet Diffbot eine Reihe von Ressourcen, mit denen Benutzer beginnen können, einschließlich Tutorials und Kundenunterstützung. Daten. Es ist ein leistungsstarkes Instrument für Unternehmen, die große Datenmengen schnell und genau sammeln und analysieren müssen. Die maschinelle Lerntechnologie von Diffbot ermöglicht es, Daten schnell zu verarbeiten und sie zu einem wertvollen Instrument für Big -Data -Projekte zu machen.

Welche Branchen können von der Verwendung von Diffbot profitieren? Diffbot. Dies umfasst Marketing, Forschung, Journalismus, E-Commerce und mehr. Jede Branche, die auf das Sammeln und Analysieren von Daten aus dem Web beruht, kann möglicherweise von der Verwendung von Diffbot profitieren. zur Verwendung von Technologie für maschinelles Lernen. Dies ermöglicht es ihm, Webseiten auf eine Weise zu verstehen und zu interpretieren, die der Art und Weise ähnlich ist, wie ein Mensch es zu einem leistungsstarken und genauen Werkzeug für die Datenextraktion macht. Wie bei jedem Tool kann seine Wirksamkeit jedoch von den spezifischen Anforderungen des Benutzers abhängen. Es wird von einer Vielzahl von Unternehmen und Branchen verwendet, um Daten aus dem Web zu sammeln und zu analysieren. Die Verwendung der Technologie für maschinelles Lernen ermöglicht es ihnen, relevante Daten genau zu extrahieren, was sie zu einem vertrauenswürdigen Tool für die Datenextraktion macht.

Das obige ist der detaillierte Inhalt vonDiffbot: Krabbeln mit visuellem maschinellem Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn