Baidu クラウド共有クローラー プロジェクト
github にはこのようなオープンソース プロジェクトがいくつかありますが、これらはクローラ部分のみを提供しています。このプロジェクトには、データを保存し、クローラに基づいて elasticsearch インデックスを確立するためのモジュールも追加されています。実際の運用環境でも使用できますが、Web モジュールはそのままです。自分で開発する必要があります。
インストール
node.js と pm2 をインストールします。node はクローラーとインデックス作成プログラムの実行に使用され、pm2 はノードのタスクの管理に使用されます。
mysql と mongodb をインストールします。Mysql はクローラー データの保存に使用され、mongodb は最終的な Baidu Cloud 共有データの保存に使用されます。これらのデータは json 形式であるため、mongodb で保存する方が便利です。
gitclonehttps://github.com/callmelanmao/yunshare
cnpmi
npm の依存関係をインストールするには、最も簡単なインストール方法である cnpm コマンドを使用することをお勧めします。
$npminstall-gcnpm--registry=https://registry.npm.taobao.org
cnpm をインストールするためのその他のコマンドは、npm.taabao.org で見つけることができます。
初期化
クローラー データ (主に URL リスト) は mysql データベースに保存されます。Yunshare は ORM マッピングに Sequelizejs を使用します。ソース ファイルは src/models/index.js にあります。データは両方とも yun のようになります。 yun データベースを手動で作成する必要があります。
作成されたデータベースyundefaultcharsetutf8
必要に応じてパスワードを変更します。mysql の設定が完了したら、次のコマンドを実行できます。
ガルプバベル
ノードディスト/スクリプト/init.js
まず gulpbabel を実行して es6 コードを es5 にコンパイルし、次に初期化スクリプトを実行して初期データをインポートする必要があることに注意してください。データ ファイルは http://yun.baidu ページからの data/hot.json にあります。 .com/pcloud/friend/gethotuserlist? type=1&from=feed&start=0&limit=24&bdstoken=ac95ef31d3979f6ee707ef75cee9f5c5&clienttype=0&web=1 が保存されました。
プロジェクトを開始する
Yunshare は、nodejs プロセス管理に pm2 を使用します。pm2startprocess.json を実行して、タスクが正常に実行されているかどうかを確認するには、pm2list コマンドを使用します。
elasticsearch インデックスを開始する
elasticsearch インデックス プログラムも作成されており、マッピング ファイルは data/mapping.json にあります。インデックス プログラム (pm2startdist/elastic.js) を実行する前に、elasticsearch5.0 バージョンがインストールされていることを確認してください。
デフォルトの elasticsearch アドレスは http://localhost:9200 です。このアドレスを変更する必要がある場合は、js ソース コードを変更した後、必ず gulpbabel を実行して pm2 タスクを再起動してください。変更は有効になりません。
elasticsearch の構成を完了した後、process.json に Elastic タスクを追加すると、インデックス作成プログラムを個別に起動する必要がなくなります。
関連資料
シンプルで効率的なnodejsクローラモデル
デモ