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ächlichJa, 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
installierenWir 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" },
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>
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:
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>
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:
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
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:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Alipay PHP ...

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Die Aufzählungsfunktion in Php8.1 verbessert die Klarheit und Type des Codes, indem benannte Konstanten definiert werden. 1) Aufzählungen können Ganzzahlen, Zeichenfolgen oder Objekte sein, die die Lesbarkeit der Code und die Type der Type verbessern. 2) Die Aufzählung basiert auf der Klasse und unterstützt objektorientierte Merkmale wie Traversal und Reflexion. 3) Die Aufzählung kann zum Vergleich und zur Zuordnung verwendet werden, um die Sicherheit der Typ zu gewährleisten. 4) Aufzählung unterstützt das Hinzufügen von Methoden zur Implementierung einer komplexen Logik. 5) Strenge Typ Überprüfung und Fehlerbehandlung können häufig auftretende Fehler vermeiden. 6) Die Aufzählung verringert den magischen Wert und verbessert die Wartbarkeit, achten Sie jedoch auf die Leistungsoptimierung.

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.
