ホームページ >ウェブフロントエンド >jsチュートリアル >Baiduインデックスクローラー機能の実装方法
今回は、Baidu インデックス クローラー機能の実装方法と、Baidu インデックス クローラー機能を実装するための notes について説明します。以下は実際的なケースです。見てみましょう。
以前、さまざまな大手メーカーのフロントエンドのクロール対策技術を紹介した想像力豊かな記事を読んだことがありますが、この記事で述べられているように、100% のクロール対策方法は存在しません。この記事では、これらすべてのフロントエンドを回避する簡単な方法を紹介します。クローラー対策終了。
次のコードは、Baidu Index を例として取り上げており、コードは Baidu Index クローラー ノード ライブラリにパッケージ化されています: https://github.com/Coffcer/baidu-index-spider
注: クローラーを悪用して他人に迷惑をかけないでください
Baidu Index のクローラー対策戦略
Baidu Index のインターフェイスを観察してください。インデックス データはトレンド チャートです。マウスを特定の日に置くと、2 つのリクエストがトリガーされ、結果がフローティング ボックスに表示されます。 Baidu Index が実際にフロントエンドに特定のクローラー対策戦略を実装していることがわかります。マウスがグラフ上に移動すると、2 つのリクエストがトリガーされ、1 つのリクエストは HTML を返し、もう 1 つのリクエストは生成された画像を返します。 HTML には実際の値は含まれていませんが、width と
margin-leftを設定することで、画像上に対応する文字が表示されます。さらに、リクエストパラメータには、シミュレーション方法がわからないresやres1などのパラメータが含まれているため、従来のシミュレートされたリクエストやHTMLクローリング方法を使用してBaidu Indexデータをクロールすることは困難です。
クローラーのアイデアBaidu のクローラー対策方法を突破する方法は実際には非常に簡単です。クローラー対策方法については気にしないでください。ユーザーの操作をシミュレートし、必要な値をスクリーンショットし、画像認識を行うだけで済みます。手順は大まかに次のとおりです:
ブラウザ操作をシミュレートします
node-tesseract 画像認識に使用されるtesseractのパッケージ
jimp 画像のトリミング
Puppeteer をインストールしてユーザー操作をシミュレートする
API ドキュメント: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md インストール:
rreePuppeteer はインストール中に Chromium を自動的にダウンロードし、正しく動作することを確認します。ただし、国内ネットワークでは Chromium を正常にダウンロードできない場合があります。ダウンロードに失敗した場合は、cnpm を使用してインストールするか、ダウンロード アドレスを Taobao ミラーに変更してからインストールしてください:
npm install --save puppeteer
インストール中に Chromium のダウンロードをスキップし、コードでネイティブ Chrome パスを指定して実行することもできます:
npm config set PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors npm install --save puppeteer
達成しました
レイアウトをわかりやすくするために、主要な部分のみを以下にリストします。セレクターに関係するコードの部分は次のように置き換えられます。完全なコードについては、記事の上部にある github リポジトリを参照してください。
Baidu Index ページを開いてログインをシミュレートします
ここで行われるのは、ユーザーの操作、クリックと入力を段階的にシミュレートすることです。ログイン
認証コードを処理する必要はありません。Baidu にローカルでログインしている場合は、通常、認証コードの処理は必要ありません。 りー
マウスの動きをシミュレートし、必要なデータを取得します以上がBaiduインデックスクローラー機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。