英語| 中文版
このプロジェクトは、検索結果を取得し、FastAPI、Searxng、およびBrowserlessを使用してMarkdown形式に変換する強力なWebスクレイピングツールを提供します。これには、Webスクレイピングにプロキシを使用し、HTMLコンテンツ変換をハンドルしてMarkdownを効率的に処理する機能が含まれています。現在、検索結果をフィルタリングするためのAI統合を特徴としています。代替品には、jina.ai、firecrawl ai、exa ai、および2markdownが含まれ、開発者向けのさまざまなWebスクレイピングおよび検索エンジンソリューションを提供します。
次のインストールを確認してください。
Dockerを使用して、セットアッププロセスを簡素化できます。次の手順に従ってください:
リポジトリをクローンします:
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownDockerの作曲を実行します:
docker compose up --buildこのセットアップを使用すると、 .envまたはmain.pyファイルを変更すると、Dockerを再起動する必要がなくなります。変更は自動的にリロードされます。
手動のセットアップについては、次の手順に従ってください。
リポジトリをクローンします:
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdown仮想環境を作成してアクティブ化します。
virtualenv venv
source venv/bin/activate依存関係をインストールします:
pip install -r requirements.txt次のコンテンツを使用して、ルートディレクトリに.ENVファイルを作成します。
SEARXNG_URL=http://searxng:8080
BROWSERLESS_URL=http://browserless:3000
TOKEN=your_browserless_token_here # Replace with your actual token
# PROXY_PROTOCOL=http
# PROXY_URL=your_proxy_url
# PROXY_USERNAME=your_proxy_username
# PROXY_PASSWORD=your_proxy_password
# PROXY_PORT=your_proxy_port
REQUEST_TIMEOUT=30
# AI Integration for search result filter
FILTER_SEARCH_RESULT_BY_AI=true
AI_ENGINE=groq
# GROQ
GROQ_API_KEY=yours_groq_api_key_here
GROQ_MODEL=llama3-8b-8192
# OPENAI
# OPENAI_API_KEY=your_openai_api_key_here
# OPENAI_MODEL=gpt-3.5-turbo-0125searxngおよびbrowserless用のDockerコンテナを実行します。
./run-services.shFASTAPIアプリケーションを開始します:
uvicorn main:app --host 0.0.0.0 --port 8000検索クエリを実行するには、queryパラメーターq (検索クエリ)、 num_results (結果の数)、およびformat (JSONでのGET応答、またはマークダウンのデフォルトで)を使用して、ルートエンドポイント/にgetリクエストを送信します。
例:
curl " http://localhost:8000/?q=python&num_results=5&format=json " # for JSON format
curl " http://localhost:8000/?q=python&num_results=5 " # by default Markdown特定のURLのコンテンツを取得してマークダウンに変換するには、 /r/{url:path}エンドポイントにget requestを送信します。
例:
curl " http://localhost:8000/r/https://example.com&format=json " # for JSON format
curl " http://localhost:8000/r/https://example.com " # by default Markdown画像検索結果を取得するには、クエリパラメーターq (検索クエリ)とnum_results (結果の数)を使用して、 /imagesエンドポイントにget requestを送信します。
例:
curl " http://localhost:8000/images?q=puppies&num_results=5 "ビデオ検索結果を取得するには、クエリパラメーターq (検索クエリ)とnum_results (結果の数)を使用して/videosエンドポイントにget requestを送信します。
例:
curl " http://localhost:8000/videos?q=cooking+recipes&num_results=5 " このプロジェクトでは、WebスクレイピングにGeonodeプロキシを使用しています。 Geonodeアフィリエイトリンクを使用して、プロキシサービスを開始できます。
コードの詳細な説明については、こちらの記事をご覧ください。
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。
Essa Mamdani -essamamdani.com
貢献は大歓迎です!プルリクエストをお気軽に送信してください。