Releases: Sunwood-ai-labs/PEGASUS
Releases · Sunwood-ai-labs/PEGASUS
🐎PEGASUS v0.3.0 リリースノート
新機能
検索スクレイピング機能の追加 🔍 (#3)
pegasus search
コマンドを使用して、特定の検索クエリに基づいたスクレイピングが可能になりました。- DuckDuckGo検索エンジンを活用し、指定されたクエリに関連するWebページを効率的に収集できます。
- 例:
pegasus search --search-query "お好み焼き レシピ"
再帰スクレイピングと検索スクレイピング機能の統合 🔄 (#3)
- 再帰スクレイピングと検索スクレイピングのメソッドを1つのクラスに統合し、コードの可読性と保守性を向上させました。
- CLIの選択肢を拡大し、
search
とrecursive
の2つのモードを実行可能にしました。
機能改善
文字化け検出機能の追加 🐛 (#1)
- スクレイピング中に文字化けを自動検出し、不正なテキストが含まれるページを除外するようになりました。
- ASCII範囲外の文字が多い場合、内容が文字化けしているとみなし、処理から除外します。
スクレイピングオプションの説明の更新 📝 (#2)
- READMEファイル内のコマンド例を更新し、正確な使用方法を反映しました。
- 出力ファイル拡張子の指定方法を明確化し、
.txt
の形式で統一して記載するよう修正しました。
ドキュメントの改善 📄
SourceSageドキュメント自動生成機能の追加 (#4)
- SourceSageを用いたドキュメント自動生成のコマンド例をREADMEに追記し、具体的な使用方法を示しました。
- ドキュメント生成に必要なパラメータを明記し、ユーザーが容易に機能を利用できるようにしました。
その他の変更
依存関係の更新 📦 (#3)
- DuckDuckGo searchライブラリを依存関係に追加し、新機能のサポートを強化しました。
.gitignoreの更新 🔧 (#4)
- ローカル開発中に生成される
memo.md
ファイルをGitの追跡対象から除外するように変更しました。
🐎PEGASUS v0.2.0 リリースノート
新機能
- URLリストを記載したテキストファイルを指定してスクレイピングできるようになりました。
--url-file
オプションを使用して、スクレイピングするURLが記載されたテキストファイルを指定できます。 - LLMを使ってスクレイピングしたサイトを分類できるようになりました。
--system-message
オプションと--classification-prompt
オプションを使用して、LLMのシステムメッセージとサイト分類プロンプトを指定できます。
改善
- 再帰処理の最大深度を指定できるようになりました。
--max-depth
オプションを使用して、再帰処理の最大深度を指定できます。デフォルトは制限なしです。 - 出力ファイルの拡張子を指定できるようになりました。
--output-extension
オプションを使用して、出力ファイルの拡張子を指定できます。デフォルトは.md
です。 - ダストフォルダに移動するファイルサイズのしきい値を指定できるようになりました。
--dust-size
オプションを使用して、ダストフォルダに移動するファイルサイズのしきい値をバイト単位で指定できます。デフォルトは 1000 バイトです。
追加されたコマンドラインの引数
--base-url
: スクレイピングを開始するベースURLを指定します。--url-file
: スクレイピングするURLが記載されたテキストファイルを指定します。--output-extension
: 出力ファイルの拡張子を指定します。デフォルトは.md
です。--dust-size
: ダストフォルダに移動するファイルサイズのしきい値をバイト単位で指定します。デフォルトは 1000 バイトです。--max-depth
: 再帰処理の最大深度を指定します。デフォルトは制限なしです。--system-message
: LLMのシステムメッセージを指定します。サイトの分類に使用されます。--classification-prompt
: LLMのサイト分類プロンプトを指定します。True
またはFalse
を返すようにしてください。--max-retries
: フィルタリングのリトライ回数の上限を指定します。デフォルトは3回です。--model
: LLMのモデル名を指定します。デフォルトはgemini/gemini-1.5-pro-latest
です。--rate-limit-sleep
: レート制限エラー時のスリープ時間を秒単位で指定します。デフォルトは60秒です。--other-error-sleep
: その他のエラー時のスリープ時間を秒単位で指定します。デフォルトは10秒です。
バグ修正
- サイト分類でリトライ処理を追加し、エラーが発生した場合に再試行するようにしました。
その他の変更
- コードの構造を整理し、可読性を向上させました。
- ログ出力を改善し、より詳細な情報を表示するようにしました。
- READMEを更新し、新機能やオプションについての説明を追加しました。
- PyPIのバージョンを0.1.1から0.2.0に更新しました。
インストール
pip を使用して pegasus をインストールします。
pip install pegasus-surf
使い方
コマンドラインから
pegasus をコマンドラインから使用するには、以下のようなコマンドを実行します。
pegasus --base-url https://example.com/start-page output_directory --exclude-selectors header footer nav --include-domain example.com --exclude-keywords login --output-extension txt
pegasus --url-file urls.txt output/roomba --exclude-selectors header footer nav aside .sidebar .header .footer .navigation .breadcrumbs --exclude-keywords login --output-extension .txt --max-depth 1
pegasus --url-file urls.txt output/roomba2 --exclude-selectors header footer nav aside .sidebar .header .footer .navigation .breadcrumbs --exclude-keywords login --output-extension .txt --max-depth 1 --system-message "あなたは、与えられたウェブサイトのコンテンツが特定のトピックに関連する有用な情報を含んでいるかどうかを判断するアシスタントです。トピックに関連する有益な情報が含まれている場合は「True」、そうでない場合は「False」と回答してください。" --classification-prompt "次のウェブサイトのコンテンツは、Roomba APIやiRobotに関する有益な情報を提供していますか? 提供している場合は「True」、そうでない場合は「False」と回答してください。"
Python スクリプトから
pegasus を Python スクリプトから使用するには、以下のようなコードを書きます。
from pegasus import Pegasus
pegasus = Pegasus(
output_dir="output_directory",
exclude_selectors=['header', 'footer', 'nav'],
include_domain="example.com",
exclude_keywords=["login"],
output_extension=".txt",
dust_size=500,
max_depth=2,
system_message="You are an assistant to determine if the content of a given website contains useful information related to a specific topic. If it contains relevant and beneficial information about the topic, answer 'True', otherwise answer 'False'.",
classification_prompt="Does the content of the following website provide beneficial information about the Roomba API or iRobot? If so, answer 'True', if not, answer 'False'.",
max_retries=5,
model="gemini/gemini-1.5-pro-latest",
rate_limit_sleep=30,
other_error_sleep=5
)
pegasus.run("https://example.com/start-page")
PEGASUS v0.2.0 をお楽しみください! ご意見やご要望がありましたら、Issue や Pull Request でお知らせください。
🐎PEGASUS v0.1.0 リリースノート
PEGASUS (Parsing Extracting Generating Automated Scraping Utility System) の最初の公開版 v0.1.0 をリリースしました。PEGASUS は、ウェブサイトを再帰的にクロールし、そのコンテンツを美しくフォーマットされた Markdown ドキュメントに変換する、パワフルで柔軟な Python パッケージです。
主な機能
- 指定した URL から始まり、リンクを再帰的にたどってウェブサイトを探索します。
- HTML コンテンツを美しくフォーマットされた Markdown に変換します。
- 柔軟な設定オプションにより、クロールと変換のプロセスをカスタマイズできます。
- ヘッダー、フッター、ナビゲーションなどの不要な要素を除外できます。
- 特定のドメインのみをクロールするように制限できます。
- 特定のキーワードを含む URL を除外できます。
- コマンドラインインターフェイス (CLI) から実行することも、Python スクリプトから直接使用することもできます。
インストール方法
pip を使用して PEGASUS をインストールできます。
pip install pegasus-surf
使用方法
PEGASUS は以下のようにコマンドラインまたは Python スクリプトから使用できます。
コマンドラインから:
pegasus https://example.com/start-page output_directory --exclude-selectors header footer nav --include-domain example.com --exclude-keywords login --output-extension txt
Python スクリプトから:
from pegasus import Pegasus
pegasus = Pegasus(
base_url="https://example.com/start-page",
output_dir="output_directory",
exclude_selectors=['header', 'footer', 'nav'],
include_domain="example.com",
exclude_keywords=["login"]
)
pegasus.run()
注意事項
- PEGASUS は、適切な使用方法とウェブサイトの利用規約に従ってご利用ください。
- 過度なリクエストを送信しないよう、適切な遅延を設けてください。
PEGASUS を使用すれば、ウェブサイトを再帰的に探索し、コンテンツを美しい Markdown ドキュメントに変換できます。ドキュメンテーションの自動化、コンテンツの管理、データ分析などにぜひお役立てください。フィードバックや機能リクエストをお待ちしております。