ホームページ >バックエンド開発 >PHPチュートリアル >Diffbot:視覚的な機械学習でrawう

Diffbot:視覚的な機械学習でrawう

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-20 12:44:11898ブラウズ

Diffbot:視覚的な機械学習でrawう

キーテイクアウト

  • diffbotは、機械学習を利用してURLをクロールし、データを視覚的に抽出する「視覚学習ロボット」であり、従来のWebクローラーよりも信頼性が高く人間のような解釈を提供します。
  • diffbot APIは、JavaScriptコンテンツを含むページを完全にレンダリングし、テキスト、画像、ビデオ、および著者や公開日などのメタデータなど、Webページから幅広いデータ型を抽出できるようにします。
  • DiffbotのカスタムAPI機能により、ユーザーは既存のDiffbot APIを調整したり、カスタムコンテンツ処理用にまったく新しいAPIを作成したりして、ソースコードから特定のデータ要素を抽出できます。
  • リンクを共有するときに、ソーシャルネットワークがURLをどのようにうまくプレビューするのか疑問に思ったことはありませんか?どの画像をつかむか、誰が著者として引用するか、またはプレビューに接続するタグをどのように知るのですか?それはすべて、ソースコードを介して複雑なregexesでrawうのですか?実際、多くの場合、そうではありません。ソースで定義されているメタ情報は信頼できない可能性があり、優れた評判の少ないサイトでは、それらをキーワードキャリアとして使用し、検索エンジンをより高くランク付けしようとします。私たち、人間は、とにかく重要なことを私たちの目の前で見ていませんか?
URLプレビュースニペットまたはニュースアグリゲーターを構築する場合は、独自のオープンソースの両方でオンラインで利用できる多くの自動クローラーがありますが、視覚的な機械学習ほどニッチなものを見つけることはめったにありません。これはまさにDiffbotです。「視覚的な学習ロボット」で、URLを完全にレンダリングし、データを視覚的に抽出し、必要に応じてページソースからのメタデータを支援します。

いくつかの理論をカバーした後、この投稿では、SitePointの投稿の1つでデモAPI呼び出しを行います。

phpライブラリ

DiffbotのPHPライブラリはやや時代遅れであるため、このデモでは使用しません。 RAW APIコールを実行し、将来の投稿では、APIインタラクション用の独自のライブラリを構築します。

それでもPHPライブラリをご覧になりたい場合は、こちらをご覧ください。他の言語のライブラリに興味がある場合は、Diffbotにディレクトリがあります。

アップデート、2015年7月:この記事が公開されてからPHPライブラリが開発されました。こちらの開発プロセス全体、またはこちらのソースコードをご覧ください。

javaScriptコンテンツ

紹介セクションで、Diffbotは要求を完全にレンダリングし、それを分析すると述べました。しかし、JavaScriptコンテンツはどうですか?今日、ウェブサイトはしばしばfoldの上にHTMLをレンダリングし、その後CSS、JS、および動的コンテンツのロードを終了します。 Diffbot APIはそれを見ることができますか?

実際のところ、はい。 Diffbotは文字通りページを完全にレンダリングし、ここで私のStackoverflow Q&Aで説明しているように、視覚的に検査します。ただし、いくつかの注意事項があるので、答えを注意深く読んでください。

価格設定とAPIの健康

diffbotにはいくつかの使用層があります。 7日間の電話または10000コールのいずれか最初に来る場合は、APIトークンを殺す無料のトライアル層があります。商業用トークンはさまざまな価格で購入でき、期限切れになることはありませんが、制限があります。オープンソースおよび/または教育プロジェクトに特別なケースアプローチが提供されます。これは、無料のトークンの古いモデルを提供します。月額10Kコール、1秒あたり1回、期限切れになることはありません。資格があると思われる場合は、直接連絡する必要があります。

diffbotは高い稼働時間を保証しますが、特にバンチの最もリソースの集中的なAPIであるcrawlbotでは、障害が発生することがあります。 Crawlbotは、個々のページだけでなく、ドメイン全体をクロールするために使用されるため、他のAPIよりも信頼性が低くなります。多くではありませんが、APIヘルス画面で顕著になるのに十分です。画面は、APIが稼働しているかどうかを確認するか、コールが問題になったり、エラー500を返したりした場合に現在利用できないかを確認できます。

demo

環境を準備するには、ホームステッドの改善されたインスタンスを起動してください。

プロジェクトの作成

VAGRANT SSHを使用してVMにSSHINGでSSHINGを作成し、コードフォルダーに入り、Composer Create Project Laravel/Laravel Laravel - Prefer-Distを実行することにより、スターターLaravelプロジェクトを作成します。これにより、ホストのブラウザからhttp://homestead.app:8000からLaravelグリーティングページにアクセスできます。

ルートとアクションを追加

アプリ/コントローラー/homeControllerで、次のアクションを追加します

http://homestead.app:8000/diffbotが画面に「HI」を出力するようになった場合、APIで再生を開始する準備ができています。
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
トークンを取得

diffbot APIと対話するには、トークンが必要です。価格設定ページに1つにサインアップしてください。このデモのために、トークン$トークンと呼んでみましょう。URLSでそのように言及します。必要に応じて、$トークンを独自の価値に置き換えます。
<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>

guzzle

をインストールします

HTTPクライアントとしてGuzzleを使用します。必須ではありませんが、私たちの過去の記事を通してあなたがそれに慣れることをお勧めします。

"guzzlehttp/guzzle"を追加します: "4.1.*@dev" "composer.jsonで、要求ブロックは次のようになります。

プロジェクトルートでは、Composer Updateを実行します。

記事データの取得

最初の例では、diffbotのデフォルトの記事APIを使用してSitePoint投稿をクロールします。これを行うために、ワークフローを説明するのに優れた仕事をするドキュメントを参照します。 diffbotdemoアクションの本体を次のコードに変更します。

最初に、トークンを設定します。次に、APIバージョンを保持する変数を定義します。次に、新しいGuzzleクライアントを作成するのは私たち次第です。また、別のリクエストを行うたびに入力する必要はありません。次に、APIのURLにGETリクエストを送信して応答オブジェクトを作成し、key => value形式のクエリパラメーターの配列を追加します。この場合、トークンとURLのみを渡します。これは、最も基本的なパラメーターです。

最後に、diffbot APIはjsonデータを返しているため、Guzzleのjson()メソッドを使用してアレイに自動的にデコードします。次に、このデータをきれいにプリントします:

Diffbot:視覚的な機械学習でrawうご覧のとおり、いくつかの情報をかなり迅速に戻しました。使用されたアイコン、テキストのプレビュー、タイトル、言語、日付、およびHTMLが返されました。ただし、著者がいないことに気付くでしょう。これを変更して、もう少し値を要求しましょう。

「フィールド」パラメーターをクエリパラメーターリストに追加し、「タグ」の値を与えると、diffbotは提供されたURLからタグ/カテゴリを抽出しようとします。この行をクエリアレイに追加します:

そして、これにダイの部分を変更します:
<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>

画面を更新すると、これがこれを与えてくれます
<span>public function diffbotDemo() {
</span>        <span>die("hi");
</span>    <span>}</span>

しかし、記事のソースコードは、他のいくつかのタグを指摘しています:Diffbot:視覚的な機械学習でrawう

なぜ結果がとても違うのですか?まさに、この投稿の最初の段落の最後に言及した理由によるものです。私たち人間が見ていることは優先されます。 diffbotは視覚的な学習ロボットであり、そのように、そのAIは、SEOの目的であまりにも簡単にスパイスアップされているソースコードを見るのではなく、実際のレンダリングされたコンテンツからタグを差し引きます。 Diffbot:視覚的な機械学習でrawうソースコードからタグを取得する方法はありますか?さらに、diffbotにSitePointの記事で著者を認識させることができますか?はい。カスタムAPIで カスタムAPIを使用したメタタグと著者

カスタムAPIは、コンテンツ抽出のための新しいフィールドとルールを追加することにより、既存のDiffbot APIを好みに合わせて調整できるだけでなく、完全に新しいAPIを作成することができる機能です(専用URLを介してアクセスできます)カスタムコンテンツ処理の場合

開発ダッシュボードに移動して、トークンでログインします。次に、「カスタムAPI」に移動します。下部にある「ルールの作成」タブをアクティブにし、URLボックスにクロールする記事のURLを入力し、[テスト]をクリックします。あなたの画面は次のように見えるはずです:

著者のフィールドが空であることにすぐに気付くでしょう。 [隣に編集]をクリックし、開くライブプレビューウィンドウで著者要素を見つけて、それをクリックして目的の結果を取得することにより、Author-Searchingルールを調整できます。ただし、SitePointの終わりには完全なCSSよりも少ないため、特に要素をクリックすることにより、著者名への一貫したパスをDiffbotのAPIに提供することは非常に困難です。代わりに、次のルールを手動で追加します。.Contributor - arge .Contributor_Name Aをクリックして[保存]をクリックします。

プレビューウィンドウが著者フィールドに正しく入力されるようになりました:

Diffbot:視覚的な機械学習でrawう

実際、この新しいルールは、トークンのすべてのSitePointリンクに自動的に適用されます。このように別のSitePointの記事をプレビューしようとすると、Peter Nijssenが正常に抽出されていることに気付くでしょう。

Diffbot:視覚的な機械学習でrawう OK、APIをさらに変更しましょう。ソースコードに表示されるタグ値:タグ値が必要です。これを行うには、2段階のプロセスが必要です。

ステップ1:コレクションを定義します

コレクションはまさにそのように聞こえます。特定のルールセットを介してつかまった価値のコレクションです。コレクションを「メタタグ」と呼び、次のセレクターを提供します。Meta[Property = article:Tag]。これは、「valueの記事を含むプロパティ属性を持つHTMLのすべてのメタ要素を見つける」を意味します。

ステップ2:コレクションフィールドを定義します

コレクションフィールドは、コレクション内の個別のエントリです。この場合、さまざまなタグです。 「このコレクションにカスタムフィールドを追加」をクリックし、次の値を追加します。

[保存]をクリックします。結果ウィンドウのタグのリストにすぐにアクセスできます。

Diffbot:視覚的な機械学習でrawう

diffbotdemo()アクションの最終出力をこれに変更します:

Diffbot:視覚的な機械学習でrawう(http://homestead.app:8000/diffbot)でテストしたURLを更新すると、著者とメタタグの値があることに気付くでしょう。上記のコードラインが生成する出力は次のとおりです

<span>Route<span>::</span>get('/diffbot', 'HomeController@diffbotDemo');</span>
タグがあります!

結論

diffbotは、Webの強力なデータ抽出器です。バックエンドを組み合わせることなく、多くのサイトを単一の検索インデックスに統合する必要があるかどうか、ニュースアグリゲーターを構築したい、URLプレビューWebコンポーネントのアイデア、または競合他社のパブリック価格リストの内容を定期的に収穫したい場合は、Diffbotが役立ちます。死んだ単純なAPI呼び出しと高度に構造化された応答を使用すると、すぐに稼働します。後の記事では、PHPでdiffbotを使用するための新しいAPIを構築し、上記のコールをやり直します。また、ライブラリをPackagistでホストしているため、Composerと簡単にインストールできます。お楽しみに!

diffbot

に関するよくある質問(FAQ) diffbotは、機械学習テクノロジーを使用してWebページからデータを抽出および分析するWebスクレイピングツールです。人間と同じようにWebページを理解するように設計されており、データ抽出の強力なツールになります。 Diffbotを使用して、ソーシャルメディアサイト、ニュース記事、製品ページなどからデータを収集できます。大量のデータを迅速かつ正確に収集する必要がある企業にとって特に便利です。 Webページを解釈します。アルゴリズムを使用して、Webページの構造とコンテンツを分析し、その分析に基づいて関連するデータを抽出します。これにより、diffbotは人間がどのように類似しているかの方法でWebページを理解することができ、それをデータ抽出のための強力なツールにします。 Webページからの幅広いデータ型。これには、テキスト、画像、ビデオなどが含まれます。また、Webページの著者や公開された日付など、メタデータを抽出することもできます。これにより、Diffbotは、Webから幅広い情報を収集できるデータ抽出のための汎用性の高いツールになります。機械学習技術の使用。これは、人間と同じようにWebページを理解するように設計されており、関連するデータを正確に識別および抽出できるようにします。ただし、他のツールと同様に、その精度は、Webページの複雑さと抽出されるデータのタイプに依存します。ソーシャルメディアサイトからデータを抽出します。これには、Facebook、Twitter、LinkedInなどのサイトが含まれます。投稿、コメント、いいね!、共有などのデータを収集して、ソーシャルメディア分析やマーケティング調査に役立つツールにすることができます。

diffbotは使いやすいですか?

diffbotは、単純なインターフェイスとクリアな命令を備えたユーザーフレンドリーになるように設計されています。ただし、他のツールと同様に、新しいユーザーには学習曲線がある場合があります。幸いなことに、diffbotは、チュートリアルやカスタマーサポートなど、ユーザーが開始するのに役立つさまざまなリソースを提供します。データ。これは、大量のデータを迅速かつ正確に収集して分析する必要がある企業にとって強力なツールです。 Diffbotの機械学習テクノロジーにより、データを迅速に処理できるようになり、ビッグデータプロジェクトの貴重なツールになります。 diffbot。これには、マーケティング、研究、ジャーナリズム、eコマースなどが含まれます。 Webからのデータの収集と分析に依存している業界は、Diffbotを使用することで潜在的に利益を得ることができます。

diffbotは他のデータ抽出ツールと比較してどのように比較されますか?機械学習技術の使用。これにより、Webページを理解して解釈することができます。これは、人間がどのようにするかに似た方法で、データ抽出のための強力で正確なツールになります。ただし、他のツールと同様に、その有効性はユーザーの特定のニーズに依存します。

difbotはデータ抽出のための信頼できるツールですか?幅広い企業や業界で使用されており、Webからデータを収集および分析しています。機械学習テクノロジーを使用すると、関連するデータを正確に抽出できるようになり、データ抽出のための信頼できるツールになります。

以上がDiffbot:視覚的な機械学習でrawうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。