Skip to content

Releases: Sunwood-ai-labs/PEGASUS

🐎PEGASUS v0.3.0 リリースノート

10 Jun 14:25
Compare
Choose a tag to compare

a-striking-futuristic-digital-art-piece-that-showc-ysSnRCD6Sfa6QytJb9pnng-1F1rOu1yQGSLpXtO9oEVLw

新機能

検索スクレイピング機能の追加 🔍 (#3)

  • pegasus search コマンドを使用して、特定の検索クエリに基づいたスクレイピングが可能になりました。
  • DuckDuckGo検索エンジンを活用し、指定されたクエリに関連するWebページを効率的に収集できます。
  • 例: pegasus search --search-query "お好み焼き レシピ"

再帰スクレイピングと検索スクレイピング機能の統合 🔄 (#3)

  • 再帰スクレイピングと検索スクレイピングのメソッドを1つのクラスに統合し、コードの可読性と保守性を向上させました。
  • CLIの選択肢を拡大し、searchrecursiveの2つのモードを実行可能にしました。

機能改善

文字化け検出機能の追加 🐛 (#1)

  • スクレイピング中に文字化けを自動検出し、不正なテキストが含まれるページを除外するようになりました。
  • ASCII範囲外の文字が多い場合、内容が文字化けしているとみなし、処理から除外します。

スクレイピングオプションの説明の更新 📝 (#2)

  • READMEファイル内のコマンド例を更新し、正確な使用方法を反映しました。
  • 出力ファイル拡張子の指定方法を明確化し、.txtの形式で統一して記載するよう修正しました。

ドキュメントの改善 📄

SourceSageドキュメント自動生成機能の追加 (#4)

  • SourceSageを用いたドキュメント自動生成のコマンド例をREADMEに追記し、具体的な使用方法を示しました。
  • ドキュメント生成に必要なパラメータを明記し、ユーザーが容易に機能を利用できるようにしました。

その他の変更

依存関係の更新 📦 (#3)

  • DuckDuckGo searchライブラリを依存関係に追加し、新機能のサポートを強化しました。

.gitignoreの更新 🔧 (#4)

  • ローカル開発中に生成されるmemo.mdファイルをGitの追跡対象から除外するように変更しました。

🐎PEGASUS v0.2.0 リリースノート

09 Jun 01:35
Compare
Choose a tag to compare

ダウンロード (5)

新機能

  • 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 リリースノート

08 Jun 16:23
Compare
Choose a tag to compare

a-captivating-digital-art-piece-that-combines-surr-Efmxhb3GR_GO916U5ZM2-w-tfIjE3rDQwqpofSeztgRRw

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 ドキュメントに変換できます。ドキュメンテーションの自動化、コンテンツの管理、データ分析などにぜひお役立てください。フィードバックや機能リクエストをお待ちしております。