rubbish — スマートページネーション対応ウェブクローラー
概要
このリポジトリ「rubbish」は、智能分页网页爬虫系统(Smart Web Crawler with Pagination)を目指した小規模な実験的プロジェクトです。Flask を用いた簡易ウェブインターフェースと、Selenium(chromedriver)によるブラウザ自動操作を組み合わせ、ページネーションされたサイトの本文やリンクを順次取得してリアルタイム表示します。スクレイピング時の簡単な防御回避や、取得データの履歴保存(history.json)・再表示・エクスポート機能が特徴です。開発者コメントでは「遊びで作ったもの、機能不完全」とあり、学習用途やプロトタイプとしての利用が想定されます。
リポジトリの統計情報
- スター数: 4
- フォーク数: 0
- ウォッチャー数: 4
- コミット数: 2
- ファイル数: 7
- メインの言語: HTML
主な特徴
- ページネーション対応:複数ページに分かれた記事やリストを順次クロールし、本文・リンクを抽出して表示。
- リアルタイム表示:Flask ベースの簡易 UI により、クロール中の内容を即座に確認可能。
- 履歴保存と回顧:取得したデータを history.json に保存し、後から閲覧・再利用できる設計。
- 簡易的な防反爬(反スクレイピング)対応:ヘッダーや待機処理などで簡単な対策を実装する想定(README に記載の方針)。
技術的なポイント
このプロジェクトは以下の技術要素を組み合わせた構成が特徴です。まずサーバーサイドには Flask を採用し、ユーザーインターフェースと簡易 API を提供します。スクレイピング部分は Selenium(と chromedriver.exe)を使ったブラウザ自動化で実現しており、JavaScript で動的に生成されるページや遅延ロードに対応しやすくしています。ページネーション処理はリンク検出→次ページ遷移という循環を想定しており、見つかった本文・リンクを逐次抽出してフロントへ送信します。データ永続化は history.json に JSON 形式で保存するシンプルな実装で、取得履歴の追跡や再生(回顧)が可能です。またエクスポート機能や UI でのリアルタイム表示により、データ確認や簡単な解析が行えます。ただし、本リポジトリは「遊びで作った」段階のため、エラーハンドリング、スロットリング(アクセス間隔制御)、プロキシ対応、ログ管理、並列処理や長時間実行の安定化など実運用に必要な多くの改善点が未整備です。学習や小規模テスト用途、プロトタイプ開発のベースとしては有益ですが、本番用途では各種改善と法的・倫理的配慮が必要です。
(上記は README の説明とファイル構成を踏まえた技術的解説です。Selenium と Flask の組み合わせ、chromedriver のバイナリ同梱、JSON ベースの履歴管理という設計方針が見て取れます。)
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file — プロジェクトの概要、使用技術(Python 3.8+, Flask, Selenium)、現状の注意書きなどが記載されています。開発者メモとして「随便做着玩玩的(遊びで作成)」と明記。
- app.py: file — Flask アプリのエントリポイント。ルーティングやクロール起動のハンドラ、フロントエンドとのデータ受け渡しを担います。Selenium を呼び出してブラウザ操作を実行し、取得したデータを UI に返す処理が含まれている想定です。
- chromedriver.exe: file — Windows 環境向けの ChromeDriver バイナリが同梱されています(注意:バイナリの配布やバージョン依存に注意)。ローカルで手早く動かすための利便性重視のファイルです。
- history.json: file — クロールで取得したデータ/履歴を JSON 形式で保存するためのファイル。再生やデータエクスポートの基盤になります。
- image: dir — UI 用の画像や OGP、アイコンなどを格納するディレクトリ。プロジェクトページやドキュメントで使用される想定です。
- その他ファイル(HTML テンプレート等): UI を構成する HTML / JS / CSS が置かれている可能性があります。総ファイル数は 7 で比較的小規模です。
ファイルごとの役割を踏まえると、プロジェクトは「簡易 UI(Flask) + ブラウザ自動化(Selenium) + 履歴保存(JSON)」という典型的なプロトタイプ構成です。実行時にはローカルの Chrome と chromedriver のバージョン整合や、必要な Python パッケージ(Flask, Selenium 等)のインストールが前提になります。
まとめ
学習とプロトタイプに適した、小規模で実用性のあるページネーションクローラーの試作リポジトリ。
リポジトリ情報:
- 名前: rubbish
- 説明: Just some random junk I made for fun.
- スター数: 4
- 言語: HTML
- URL: https://github.com/Mrwhy233/rubbish
- オーナー: Mrwhy233
- アバター: https://avatars.githubusercontent.com/u/93171270?v=4
READMEの抜粋:
🕷️ 智能分页网页爬虫系统(Smart Web Crawler with Pagination)
🌐 一款可实时展示网页内容的 智能爬虫系统。支持分页显示正文与链接、防反爬机制、历史记录保存、快速回看与数据导出。(随便做着玩玩的,功能缺少,有空再改)