YayCrawler 分散型クローラー システム、使いやすく、高度な構成。拡張可能で、開発作業負荷を軽減し、Docker 化でき、さまざまなコア フレームワークに適応します: WebMagic、Spring Boot、MongoDB、ActiveMQ、Spring + Quartz、Spring Jpa、Druid、Redis、Ehcache、SLF4J、Log4j2、Bootstrap +。 Jクエリなど
能力を最大限に発揮して、Web クローラー開発者の生産性を最大化します。これは、クローラー フレームワークに新しい風を吹き込むことになります。
WebMagic をベースに開発された完全な分散型クローラー フレームワークの特徴は次のとおりです。
1. 完全分散型: 管理端末 (Admin)、ディスパッチ端末 (Master)、および複数のワーカーで構成され、各コンポーネントは HTTP プロトコルを介して通信します。
2. 完全に構成可能: 管理者側のページ構成ルールを通じて、どの Web サイトからのデータもクロールできます。もちろん、Web サイトによって難易度は異なり、ログイン、確認コード、IP などの問題を処理するためのコンポーネントも異なります。ブロッキングなど。
3. スケーラブルなタスク キュー: タスク キューは Redis によって実装されます。タスクのステータスに応じて、初期、実行、成功、失敗の 4 つの異なるタスク キューがあります。さまざまなタスク スケジューリング アルゴリズムを拡張することもできます。デフォルトは公平なスケジューリングです。
4. 定義可能な永続化方法: クロール結果では、属性データはデフォルトで MonogoDB に永続化され、画像はファイル サーバーにダウンロードされます。 もちろん、さらに多くのストレージ タイプを拡張することもできます。
5. 安定性と耐障害性: クローラー タスクはすべて再試行され、タスクが本当に成功した場合にのみ、失敗の理由が説明されます。
コアフレームワーク: Webmagic Springブート
タスクのスケジューリング: Spring + Quartz
永続層フレームワーク: Spring JPa
データベースと接続プール: Alibaba Druid MongoDB MySql
キャッシュフレームワーク: Redis Ehcache
ログ管理:SLF4J、Log4j2
フロントエンドフレームワーク: Bootstrap + Jquary
1.JDK8をインストールする
2. 解析ルールなどのデータを保存するには、mysql データベースをインストールします。「yayCrawler」のデータベース インスタンスを作成し、quartz 関連のデータベース スクリプトquartz.sql を実行する必要があります (リリース パッケージまたはソース コードを参照)。
3.redisをインストールする
4. mongoDB をインストールして結果データを保存する
5. FTP サーバー ソフトウェア ftpserver をインストールします (オプション。ダウンロードしたイメージを保存するために使用します)。
プロジェクトをインポートし、Maven install を実行して、Admin、Worker、Master モジュールをインストールします。 次に、生成された Jar をcrawler.worker/deploy ディレクトリにコピーし、構成ファイル内の Redis と mysql mogodb の IP を忘れずに変更し、start.bat をクリックして開始します。
(Linux および Windows) java -jar worker.war --spring.config.location=worker_local.properties
閉じるコマンド
(Windows) for /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e
1. 管理者 管理者層は主に、ページ抽出ルールの設定、ページ サイトの設定、リソース管理、およびタスクのリリースを担当します。
2. マスターは、分散クローラーのコントロール センターであり、管理者によってリリースされたタスクを受け取り、実行のためにタスクをワーカーに割り当てます。
2.1. 公開タスクを受け取る
2.2. ワーカー登録の受け入れ
3. ワーカーは、マスターから割り当てられたタスクを受け入れて実行し、定期的に自分の心拍数をマスターに報告する勤勉な若者です。