scrapegraphai 2.2.0b2__tar.gz → 2.2.0b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/CHANGELOG.md +29 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/PKG-INFO +15 -11
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/README.md +14 -10
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/chinese.md +21 -24
- scrapegraphai-2.2.0b3/docs/french.md +228 -0
- scrapegraphai-2.2.0b3/docs/german.md +228 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/italian.md +13 -18
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/japanese.md +21 -24
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/korean.md +21 -24
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/portuguese.md +21 -24
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/russian.md +21 -24
- scrapegraphai-2.2.0b3/docs/spanish.md +239 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/turkish.md +21 -24
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/pyproject.toml +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_answer_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_answer_node_k_level.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_answer_omni_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_code_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/html_analyzer_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/merge_answers_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/prompt_refiner_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/reasoning_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/search_internet_node.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/search_internet_node_test.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/search_link_node_test.py +1 -1
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.gitattributes +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/FUNDING.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/workflows/codeql.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/workflows/dependency-review.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/workflows/release.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.github/workflows/test-suite.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.gitignore +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.pre-commit-config.yaml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.releaserc.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/.semantic-commits-applied +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/CODE_OF_CONDUCT.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/CONTRIBUTING.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/Dockerfile +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/LICENSE +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/Makefile +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/PullRequests/PR_1027_reviews.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/SECURITY.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/SEMANTIC_COMMITS.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/TESTING_INFRASTRUCTURE.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/citation.cff +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/codebeaver.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docker-compose.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/api-banner.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/api_banner.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/apikey_1.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/apikey_2.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/apikey_3.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/apikey_4.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/browserbase_logo.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/codespaces-badge.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/histogram.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/omniscrapergraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/omnisearchgraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/project_overview_diagram.fig +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/project_overview_diagram.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/scrapegraphai_logo.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/scrapegraphai_logo.svg +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/scriptcreatorgraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/searchgraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/sgai-hero.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/smartscrapergraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/assets/speechgraph.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/docs/timeout_configuration.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/ScrapegraphAI_cookbook.ipynb +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/code_generator_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/code_generator_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/code_generator_graph/ollama/code_generator_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/code_generator_graph/openai/code_generator_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/ollama/csv_scraper_graph_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/ollama/csv_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/ollama/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/openai/csv_scraper_graph_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/openai/csv_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/csv_scraper_graph/openai/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/custom_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/custom_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/custom_graph/ollama/custom_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/custom_graph/openai/custom_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/depth_search_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/depth_search_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/depth_search_graph/ollama/depth_search_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/depth_search_graph/openai/depth_search_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/ollama/document_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/ollama/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/openai/document_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/openai/inputs/markdown_example.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/document_scraper_graph/openai/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/Savedscreenshots/test_image.jpeg +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/authenticated_playwright.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/browser_base_integration.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/chromium_selenium.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/cond_smartscraper_usage.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/conditional_usage.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/custom_prompt.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/example.yml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/force_mode.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/html_mode.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/load_yml.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/no_cut.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/rag_caching.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/reasoning.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/scrape_do.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/screenshot_scaping.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/serch_graph_scehma.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/slow_mo.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/extras/undected_playwright.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/ollama/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/ollama/json_scraper_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/ollama/json_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/openai/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/openai/json_scraper_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/openai/json_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/openai/md_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/json_scraper_graph/openai/omni_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/markdownify/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/markdownify/markdownify_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/markdownify/markdownify_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/markdownify/readme.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/omni_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/omni_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/omni_scraper_graph/omni_search_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/readme.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/ollama/script_generator_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/ollama/script_multi_generator_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/openai/script_generator_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/openai/script_generator_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/script_generator_graph/openai/script_generator_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/ollama/search_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/ollama/search_graph_schema_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/openai/search_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/openai/search_graph_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/openai/search_link_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/scrapegraphai/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/scrapegraphai/readme.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/nvidia/smart_scraper_nvidia.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_lite_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_multi_concat_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_multi_lite_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/ollama/smart_scraper_schema_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_lite_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_multi_concat_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_multi_lite_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/openai/smart_scraper_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/scrapegraphai/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/scrapegraphai/readme.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/speech_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/speech_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/speech_graph/speech_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/ollama/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/ollama/xml_scraper_graph_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/ollama/xml_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/openai/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/openai/xml_scraper_graph_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/examples/xml_scraper_graph/openai/xml_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/media/banner.png +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/pytest.ini +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/builders/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/builders/graph_builder.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/docloaders/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/docloaders/browser_base.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/docloaders/chromium.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/docloaders/plasmate.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/docloaders/scrape_do.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/abstract_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/base_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/code_generator_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/csv_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/csv_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/depth_search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/document_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/document_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/json_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/json_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/markdownify_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/omni_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/omni_search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/screenshot_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/script_creator_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/script_creator_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/search_link_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_lite_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_multi_batch_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_multi_concat_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/smart_scraper_multi_lite_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/speech_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/xml_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/graphs/xml_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/default_filters.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/models_tokens.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/nodes_metadata.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/robots.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/helpers/schemas.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/integrations/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/integrations/burr_bridge.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/integrations/indexify_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/integrations/scrapegraph_py_compat.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/clod.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/deepseek.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/minimax.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/nvidia.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/oneapi.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/openai_itt.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/openai_tts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/models/xai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/base_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/batch_generate_answer_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/concat_answers_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/conditional_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/description_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/fetch_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/fetch_node_level_k.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/fetch_screen_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_answer_csv_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_answer_from_image_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/generate_scraper_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/get_probable_tags_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/graph_iterator_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/image_to_text_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/markdownify_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/merge_generated_scripts_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/parse_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/parse_node_depth_k_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/rag_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/robots_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/search_link_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/search_node_with_context.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/nodes/text_to_speech_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/description_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/generate_answer_node_csv_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/generate_answer_node_omni_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/generate_answer_node_pdf_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/generate_answer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/generate_code_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/get_probable_tags_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/html_analyzer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/merge_answer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/merge_generated_scripts_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/prompt_refiner_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/reasoning_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/robots_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/search_internet_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/search_link_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/prompts/search_node_with_context_prompts.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/telemetry/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/telemetry/telemetry.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/batch_api.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/cleanup_code.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/cleanup_html.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/code_error_analysis.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/code_error_correction.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/convert_to_md.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/copy.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/custom_callback.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/data_export.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/dict_content_compare.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/llm_callback_manager.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/logging.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/model_costs.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/output_parser.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/parse_state_keys.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/prettify_exec_info.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/research_web.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/save_audio_from_bytes.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/save_code_to_file.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/schema_trasform.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/screenshot_scraping/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/screenshot_scraping/screenshot_preparation.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/screenshot_scraping/text_detection.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/split_text_into_chunks.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/sys_dynamic_import.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/tokenizer.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/tokenizers/tokenizer_mistral.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/tokenizers/tokenizer_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/scrapegraphai/utils/tokenizers/tokenizer_openai.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/test +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/QUICKSTART.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/README_TESTING.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/Readme.md +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/conftest.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/fixtures/benchmarking.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/fixtures/helpers.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/fixtures/mock_server/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/fixtures/mock_server/server.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/.env.example +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/abstract_graph_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/code_generator_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/depth_search_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/scrape_plain_text_mistral_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/scrape_xml_ollama_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/screenshot_scraper_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/script_generator_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/search_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/search_link_ollama.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_clod_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_ernie_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_fireworks_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_multi_lite_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_ollama_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/smart_scraper_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/graphs/xml_scraper_openai_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/integration/__init__.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/integration/test_file_formats_integration.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/integration/test_multi_graph_integration.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/integration/test_smart_scraper_integration.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/fetch_node_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/nodes/robot_node_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_batch_api.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_chromium.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_cleanup_html.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_csv_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_depth_search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_fetch_node_timeout.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_generate_answer_node.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_json_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_json_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_minimax_models.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_models_tokens.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_omni_search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_plasmate.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_scrape_do.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_script_creator_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_search_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/test_smart_scraper_multi_concat_graph.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/convert_to_md_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/copy_utils_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/parse_state_keys_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/research_web_test.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/test_proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/tests/utils/test_sys_dynamic_import.py +0 -0
- {scrapegraphai-2.2.0b2 → scrapegraphai-2.2.0b3}/uv.lock +0 -0
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
## [2.2.0-beta.3](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.2...v2.2.0-beta.3) (2026-06-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **nodes:** update outdated ChatOllama import path to langchain_ollama ([#1076](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1076)) ([e6054cb](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/e6054cbf19a7fe940899ea70b30706f676f86fa7))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Docs
|
|
10
|
+
|
|
11
|
+
* 📚 Standardize and fix links across translated READMEs ([#1074](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1074)) ([458d36a](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/458d36a6b83f4a412206cdbe9935a059e9d47f57))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### CI
|
|
15
|
+
|
|
16
|
+
* **release:** 2.1.2 [skip ci] ([210c992](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/210c99280048863774fa27053412185a5c18150d)), closes [#1076](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1076) [#1074](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1074)
|
|
17
|
+
|
|
1
18
|
## [2.2.0-beta.2](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.1...v2.2.0-beta.2) (2026-06-01)
|
|
2
19
|
|
|
3
20
|
|
|
@@ -5,6 +22,18 @@
|
|
|
5
22
|
|
|
6
23
|
* upgrade MiniMax default model to M3 ([#1080](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1080)) ([1b16c26](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/1b16c268f4e9044c1386ccfaf67b38692b487e5a))
|
|
7
24
|
|
|
25
|
+
## [2.1.2](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.1.1...v2.1.2) (2026-06-01)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **nodes:** update outdated ChatOllama import path to langchain_ollama ([#1076](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1076)) ([e6054cb](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/e6054cbf19a7fe940899ea70b30706f676f86fa7))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Docs
|
|
34
|
+
|
|
35
|
+
* 📚 Standardize and fix links across translated READMEs ([#1074](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1074)) ([458d36a](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/458d36a6b83f4a412206cdbe9935a059e9d47f57))
|
|
36
|
+
|
|
8
37
|
## [2.2.0-beta.1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.1.1...v2.2.0-beta.1) (2026-05-16)
|
|
9
38
|
|
|
10
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: scrapegraphai
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.0b3
|
|
4
4
|
Summary: A web scraping library based on LangChain which uses LLM and direct graph logic to create scraping pipelines.
|
|
5
5
|
Author-email: Marco Vinciguerra <mvincig11@gmail.com>, Lorenzo Padoan <lorenzo.padoan977@gmail.com>
|
|
6
6
|
Keywords: ai,artificial intelligence,gpt,graph,langchain,llm,machine learning,natural language processing,nlp,openai,rag,scrapegraph,scrapegraphai,scraping,web scraping,web scraping library,web scraping tool,webscraping
|
|
@@ -55,14 +55,14 @@ Description-Content-Type: text/markdown
|
|
|
55
55
|
</a>
|
|
56
56
|
</p>
|
|
57
57
|
|
|
58
|
-
[English](
|
|
59
|
-
| [한국어](
|
|
60
|
-
| [Русский](
|
|
61
|
-
| [Deutsch](
|
|
62
|
-
| [Español](
|
|
63
|
-
| [français](
|
|
64
|
-
| [Português](
|
|
65
|
-
| [Italiano](
|
|
58
|
+
[English](README.md) | [中文](docs/chinese.md) | [日本語](docs/japanese.md)
|
|
59
|
+
| [한국어](docs/korean.md)
|
|
60
|
+
| [Русский](docs/russian.md) | [Türkçe](docs/turkish.md)
|
|
61
|
+
| [Deutsch](docs/german.md)
|
|
62
|
+
| [Español](docs/spanish.md)
|
|
63
|
+
| [français](docs/french.md)
|
|
64
|
+
| [Português](docs/portuguese.md)
|
|
65
|
+
| [Italiano](docs/italian.md)
|
|
66
66
|
|
|
67
67
|
[](https://pepy.tech/projects/scrapegraphai)
|
|
68
68
|
|
|
@@ -80,6 +80,10 @@ Just say which information you want to extract and the library will do it for yo
|
|
|
80
80
|
## 🚀 Integrations
|
|
81
81
|
ScrapeGraphAI offers seamless integration with popular frameworks and tools to enhance your scraping capabilities. Whether you're building with Python or Node.js, using LLM frameworks, or working with no-code platforms, we've got you covered with our comprehensive integration options..
|
|
82
82
|
|
|
83
|
+
<p align="center">
|
|
84
|
+
<img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
|
|
85
|
+
</p>
|
|
86
|
+
|
|
83
87
|
You can find more informations at the following [link](https://scrapegraphai.com)
|
|
84
88
|
|
|
85
89
|
**Integrations**:
|
|
@@ -223,8 +227,8 @@ We offer SDKs in both Python and Node.js, making it easy to integrate into your
|
|
|
223
227
|
|
|
224
228
|
| SDK | Language | GitHub Link |
|
|
225
229
|
|-----------|----------|-----------------------------------------------------------------------------|
|
|
226
|
-
| Python SDK | Python | [scrapegraph-py](https://
|
|
227
|
-
| Node.js SDK | Node.js | [scrapegraph-js](https://
|
|
230
|
+
| Python SDK | Python | [scrapegraph-py](https://docs.scrapegraphai.com/sdks/python) |
|
|
231
|
+
| Node.js SDK | Node.js | [scrapegraph-js](https://docs.scrapegraphai.com/sdks/javascript) |
|
|
228
232
|
|
|
229
233
|
The Official API Documentation can be found [here](https://docs.scrapegraphai.com/introduction).
|
|
230
234
|
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
</a>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
-
[English](
|
|
14
|
-
| [한국어](
|
|
15
|
-
| [Русский](
|
|
16
|
-
| [Deutsch](
|
|
17
|
-
| [Español](
|
|
18
|
-
| [français](
|
|
19
|
-
| [Português](
|
|
20
|
-
| [Italiano](
|
|
13
|
+
[English](README.md) | [中文](docs/chinese.md) | [日本語](docs/japanese.md)
|
|
14
|
+
| [한국어](docs/korean.md)
|
|
15
|
+
| [Русский](docs/russian.md) | [Türkçe](docs/turkish.md)
|
|
16
|
+
| [Deutsch](docs/german.md)
|
|
17
|
+
| [Español](docs/spanish.md)
|
|
18
|
+
| [français](docs/french.md)
|
|
19
|
+
| [Português](docs/portuguese.md)
|
|
20
|
+
| [Italiano](docs/italian.md)
|
|
21
21
|
|
|
22
22
|
[](https://pepy.tech/projects/scrapegraphai)
|
|
23
23
|
|
|
@@ -35,6 +35,10 @@ Just say which information you want to extract and the library will do it for yo
|
|
|
35
35
|
## 🚀 Integrations
|
|
36
36
|
ScrapeGraphAI offers seamless integration with popular frameworks and tools to enhance your scraping capabilities. Whether you're building with Python or Node.js, using LLM frameworks, or working with no-code platforms, we've got you covered with our comprehensive integration options..
|
|
37
37
|
|
|
38
|
+
<p align="center">
|
|
39
|
+
<img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
|
|
40
|
+
</p>
|
|
41
|
+
|
|
38
42
|
You can find more informations at the following [link](https://scrapegraphai.com)
|
|
39
43
|
|
|
40
44
|
**Integrations**:
|
|
@@ -178,8 +182,8 @@ We offer SDKs in both Python and Node.js, making it easy to integrate into your
|
|
|
178
182
|
|
|
179
183
|
| SDK | Language | GitHub Link |
|
|
180
184
|
|-----------|----------|-----------------------------------------------------------------------------|
|
|
181
|
-
| Python SDK | Python | [scrapegraph-py](https://
|
|
182
|
-
| Node.js SDK | Node.js | [scrapegraph-js](https://
|
|
185
|
+
| Python SDK | Python | [scrapegraph-py](https://docs.scrapegraphai.com/sdks/python) |
|
|
186
|
+
| Node.js SDK | Node.js | [scrapegraph-js](https://docs.scrapegraphai.com/sdks/javascript) |
|
|
183
187
|
|
|
184
188
|
The Official API Documentation can be found [here](https://docs.scrapegraphai.com/introduction).
|
|
185
189
|
|
|
@@ -4,39 +4,36 @@
|
|
|
4
4
|
|
|
5
5
|
# 🕷️ ScrapeGraphAI: 只需抓取一次
|
|
6
6
|
|
|
7
|
-
[English](
|
|
8
|
-
| [한국어](
|
|
9
|
-
| [Русский](
|
|
10
|
-
| [Deutsch](
|
|
11
|
-
| [Español](
|
|
12
|
-
| [français](
|
|
13
|
-
| [Português](
|
|
7
|
+
[English](../README.md) | [中文](chinese.md) | [日本語](japanese.md)
|
|
8
|
+
| [한국어](korean.md)
|
|
9
|
+
| [Русский](russian.md) | [Türkçe](turkish.md)
|
|
10
|
+
| [Deutsch](german.md)
|
|
11
|
+
| [Español](spanish.md)
|
|
12
|
+
| [français](french.md)
|
|
13
|
+
| [Português](portuguese.md)
|
|
14
|
+
| [Italiano](italian.md)
|
|
14
15
|
|
|
15
16
|
[](https://pepy.tech/projects/scrapegraphai)
|
|
16
|
-
|
|
17
|
-
[](https://github.com/VinciGit00/Scrapegraph-ai/actions/workflows/code-quality.yml)
|
|
18
|
-
[](https://github.com/VinciGit00/Scrapegraph-ai/actions/workflows/codeql.yml)
|
|
17
|
+
|
|
19
18
|
[](https://opensource.org/licenses/MIT)
|
|
20
19
|
[](https://discord.gg/gkxQDAjfeX)
|
|
21
|
-
|
|
22
|
-
[](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=api_banner&utm_content=api_banner_image)
|
|
23
|
-
|
|
24
20
|
<p align="center">
|
|
25
|
-
<a href="https://trendshift.io/repositories/
|
|
21
|
+
<a href="https://trendshift.io/repositories/15078" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15078" alt="ScrapeGraphAI%2FScrapegraph-ai | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
26
22
|
<p align="center">
|
|
27
23
|
|
|
28
24
|
[ScrapeGraphAI](https://scrapegraphai.com) 是一个*网络爬虫* Python 库,使用大型语言模型和直接图逻辑为网站和本地文档(XML,HTML,JSON,Markdown 等)创建爬取管道。
|
|
29
25
|
|
|
30
26
|
只需告诉库您想提取哪些信息,它将为您完成!
|
|
31
27
|
|
|
32
|
-
<p align="center">
|
|
33
|
-
<img src="https://raw.githubusercontent.com/VinciGit00/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
|
|
34
|
-
</p>
|
|
35
28
|
|
|
36
29
|
|
|
37
30
|
## 🚀 集成
|
|
31
|
+
|
|
38
32
|
ScrapeGraphAI 提供与流行框架和工具的无缝集成,以增强您的抓取能力。无论您使用 Python 还是 Node.js 构建,使用 LLM 框架,还是使用无代码平台,我们都为您提供全面的集成选项。
|
|
39
33
|
|
|
34
|
+
<p align="center">
|
|
35
|
+
<img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
|
|
36
|
+
</p>
|
|
40
37
|
您可以在以下[链接](https://scrapegraphai.com)找到更多信息
|
|
41
38
|
|
|
42
39
|
**集成**:
|
|
@@ -165,7 +162,7 @@ ScrapeGraphAI 的文档可以在[这里](https://docs.scrapegraphai.com/introduc
|
|
|
165
162
|
|
|
166
163
|
欢迎贡献并加入我们的 Discord 服务器与我们讨论改进和提出建议!
|
|
167
164
|
|
|
168
|
-
请参阅[贡献指南](https://github.com/
|
|
165
|
+
请参阅[贡献指南](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/CONTRIBUTING.md)。
|
|
169
166
|
|
|
170
167
|
[](https://discord.gg/uJN7TYcpNa)
|
|
171
168
|
[](https://www.linkedin.com/company/scrapegraphai/)
|
|
@@ -180,14 +177,14 @@ ScrapeGraphAI 的文档可以在[这里](https://docs.scrapegraphai.com/introduc
|
|
|
180
177
|
|
|
181
178
|
| SDK | 语言 | GitHub 链接 |
|
|
182
179
|
|-----------|----------|-----------------------------------------------------------------------------|
|
|
183
|
-
| Python SDK | Python | [scrapegraph-py](https://
|
|
184
|
-
| Node.js SDK | Node.js | [scrapegraph-js](https://
|
|
180
|
+
| Python SDK | Python | [scrapegraph-py](https://docs.scrapegraphai.com/sdks/python) |
|
|
181
|
+
| Node.js SDK | Node.js | [scrapegraph-js](https://docs.scrapegraphai.com/sdks/javascript) |
|
|
185
182
|
|
|
186
183
|
官方 API 文档可以在[这里](https://docs.scrapegraphai.com/introduction)找到。
|
|
187
184
|
|
|
188
185
|
## 🔥 基准测试
|
|
189
186
|
|
|
190
|
-
根据 Firecrawl 基准测试 [Firecrawl benchmark](https://
|
|
187
|
+
根据 Firecrawl 基准测试 [Firecrawl benchmark](https://scrapegraphai.com/compare/firecrawl),ScrapeGraph 是市场上最好的抓取工具!
|
|
191
188
|
|
|
192
189
|

|
|
193
190
|
|
|
@@ -195,7 +192,7 @@ ScrapeGraphAI 的文档可以在[这里](https://docs.scrapegraphai.com/introduc
|
|
|
195
192
|
我们收集匿名使用指标以增强我们包的质量和用户体验。这些数据帮助我们确定改进的优先级并确保兼容性。如果您希望退出,请设置环境变量 SCRAPEGRAPHAI_TELEMETRY_ENABLED=false。有关更多信息,请参阅[这里](https://docs.scrapegraphai.com/introduction)的文档。
|
|
196
193
|
|
|
197
194
|
## ❤️ 贡献者
|
|
198
|
-
[](https://github.com/ScrapeGraphAI/Scrapegraph-ai/graphs/contributors)
|
|
199
196
|
|
|
200
197
|
## 🎓 引用
|
|
201
198
|
如果您将我们的库用于研究目的,请使用以下参考文献引用我们:
|
|
@@ -204,7 +201,7 @@ ScrapeGraphAI 的文档可以在[这里](https://docs.scrapegraphai.com/introduc
|
|
|
204
201
|
author = {Lorenzo Padoan, Marco Vinciguerra},
|
|
205
202
|
title = {Scrapegraph-ai},
|
|
206
203
|
year = {2024},
|
|
207
|
-
url = {https://github.com/
|
|
204
|
+
url = {https://github.com/ScrapeGraphAI/Scrapegraph-ai},
|
|
208
205
|
note = {一个利用大型语言模型进行爬取的 Python 库}
|
|
209
206
|
}
|
|
210
207
|
```
|
|
@@ -217,7 +214,7 @@ ScrapeGraphAI 的文档可以在[这里](https://docs.scrapegraphai.com/introduc
|
|
|
217
214
|
|
|
218
215
|
## 📜 许可证
|
|
219
216
|
|
|
220
|
-
ScrapeGraphAI 采用 MIT 许可证。更多信息请查看 [LICENSE](https://github.com/
|
|
217
|
+
ScrapeGraphAI 采用 MIT 许可证。更多信息请查看 [LICENSE](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/LICENSE) 文件。
|
|
221
218
|
|
|
222
219
|
## 鸣谢
|
|
223
220
|
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
## 🚀 **Vous cherchez un moyen encore plus rapide et plus simple de scraper à grande échelle (seulement 5 lignes de code) ?** Découvrez notre version améliorée sur [**ScrapeGraphAI.com**](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=oss_cta&utm_content=top_banner) ! 🚀
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🕷️ ScrapeGraphAI: Vous ne scrapez qu'une fois
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://scrapegraphai.com">
|
|
9
|
+
<img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/media/banner.png" alt="ScrapeGraphAI" style="width: 100%;">
|
|
10
|
+
</a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
[English](../README.md) | [中文](chinese.md) | [日本語](japanese.md)
|
|
14
|
+
| [한국어](korean.md)
|
|
15
|
+
| [Русский](russian.md) | [Türkçe](turkish.md)
|
|
16
|
+
| [Deutsch](german.md)
|
|
17
|
+
| [Español](spanish.md)
|
|
18
|
+
| [français](french.md)
|
|
19
|
+
| [Português](portuguese.md)
|
|
20
|
+
| [Italiano](italian.md)
|
|
21
|
+
|
|
22
|
+
[](https://pepy.tech/projects/scrapegraphai)
|
|
23
|
+
|
|
24
|
+
[](https://opensource.org/licenses/MIT)
|
|
25
|
+
[](https://discord.gg/gkxQDAjfeX)
|
|
26
|
+
|
|
27
|
+
<p align="center">
|
|
28
|
+
<a href="https://trendshift.io/repositories/15078" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15078" alt="ScrapeGraphAI%2FScrapegraph-ai | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
29
|
+
<p align="center">
|
|
30
|
+
|
|
31
|
+
[ScrapeGraphAI](https://scrapegraphai.com) est une bibliothèque Python de *web scraping* qui utilise les LLM et la logique de graphes directs pour créer des pipelines de scraping pour les sites web et les documents locaux (XML, HTML, JSON, Markdown, etc.).
|
|
32
|
+
|
|
33
|
+
Dites simplement quelles informations vous souhaitez extraire et la bibliothèque le fera pour vous !
|
|
34
|
+
|
|
35
|
+
<p align="center">
|
|
36
|
+
<img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
## 🚀 Intégrations
|
|
40
|
+
|
|
41
|
+
ScrapeGraphAI offre une intégration transparente avec les frameworks et outils populaires pour améliorer vos capacités de scraping. Que vous développiez avec Python ou Node.js, utilisiez des frameworks LLM ou travailliez avec des plateformes no-code, nous avons tout prévu avec nos options d'intégration complètes.
|
|
42
|
+
|
|
43
|
+
Vous pouvez trouver plus d'informations sur le [lien](https://scrapegraphai.com) suivant.
|
|
44
|
+
|
|
45
|
+
**Intégrations**:
|
|
46
|
+
- **API**: [Documentation](https://docs.scrapegraphai.com/introduction)
|
|
47
|
+
- **SDKs**: [Python](https://docs.scrapegraphai.com/sdks/python), [Node](https://docs.scrapegraphai.com/sdks/javascript)
|
|
48
|
+
- **Frameworks LLM**: [Langchain](https://docs.scrapegraphai.com/integrations/langchain), [Llama Index](https://docs.scrapegraphai.com/integrations/llamaindex), [Crew.ai](https://docs.scrapegraphai.com/integrations/crewai), [Agno](https://docs.scrapegraphai.com/integrations/agno), [CamelAI](https://github.com/camel-ai/camel)
|
|
49
|
+
- **Frameworks Low-code**: [Pipedream](https://pipedream.com/apps/scrapegraphai), [Bubble](https://bubble.io/plugin/scrapegraphai-1745408893195x213542371433906180), [Zapier](https://zapier.com/apps/scrapegraphai/integrations), [n8n](http://localhost:5001/dashboard), [Dify](https://dify.ai), [Toolhouse](https://app.toolhouse.ai/mcp-servers/scrapegraph_smartscraper)
|
|
50
|
+
- **Serveur MCP**: [Lien](https://smithery.ai/server/@ScrapeGraphAI/scrapegraph-mcp)
|
|
51
|
+
|
|
52
|
+
## 🚀 Installation rapide
|
|
53
|
+
|
|
54
|
+
La page de référence pour Scrapegraph-ai est disponible sur la page officielle de PyPI : [pypi](https://pypi.org/project/scrapegraphai/).
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install scrapegraphai
|
|
58
|
+
|
|
59
|
+
# IMPORTANT (pour récupérer le contenu des sites web)
|
|
60
|
+
playwright install
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Remarque** : il est recommandé d'installer la bibliothèque dans un environnement virtuel pour éviter les conflits avec d'autres bibliothèques 🐱
|
|
64
|
+
|
|
65
|
+
## 💻 Utilisation
|
|
66
|
+
Il existe plusieurs pipelines de scraping standards qui peuvent être utilisés pour extraire des informations d'un site web (ou d'un fichier local).
|
|
67
|
+
|
|
68
|
+
Le plus courant est le `SmartScraperGraph`, qui extrait les informations d'une seule page à partir d'une invite utilisateur et d'une URL source.
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
from scrapegraphai.graphs import SmartScraperGraph
|
|
72
|
+
|
|
73
|
+
# Définir la configuration pour le pipeline de scraping
|
|
74
|
+
graph_config = {
|
|
75
|
+
"llm": {
|
|
76
|
+
"model": "ollama/llama3.2",
|
|
77
|
+
"model_tokens": 8192,
|
|
78
|
+
"format": "json",
|
|
79
|
+
},
|
|
80
|
+
"verbose": True,
|
|
81
|
+
"headless": False,
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# Créer l'instance SmartScraperGraph
|
|
85
|
+
smart_scraper_graph = SmartScraperGraph(
|
|
86
|
+
prompt="Extract useful information from the webpage, including a description of what the company does, founders and social media links",
|
|
87
|
+
source="https://scrapegraphai.com/",
|
|
88
|
+
config=graph_config
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Exécuter le pipeline
|
|
92
|
+
result = smart_scraper_graph.run()
|
|
93
|
+
|
|
94
|
+
import json
|
|
95
|
+
print(json.dumps(result, indent=4))
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
> [!NOTE]
|
|
99
|
+
> Pour OpenAI et d'autres modèles, il vous suffit de modifier la configuration LLM !
|
|
100
|
+
> ```python
|
|
101
|
+
>graph_config = {
|
|
102
|
+
> "llm": {
|
|
103
|
+
> "api_key": "YOUR_OPENAI_API_KEY",
|
|
104
|
+
> "model": "openai/gpt-4o-mini",
|
|
105
|
+
> },
|
|
106
|
+
> "verbose": True,
|
|
107
|
+
> "headless": False,
|
|
108
|
+
>}
|
|
109
|
+
>```
|
|
110
|
+
|
|
111
|
+
La sortie sera un dictionnaire comme suit :
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
{
|
|
115
|
+
"description": "ScrapeGraphAI transforms websites into clean, organized data for AI agents and data analytics. It offers an AI-powered API for effortless and cost-effective data extraction.",
|
|
116
|
+
"founders": [
|
|
117
|
+
{
|
|
118
|
+
"name": "",
|
|
119
|
+
"role": "Founder & Technical Lead",
|
|
120
|
+
"linkedin": "https://www.linkedin.com/in/perinim/"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "Marco Vinciguerra",
|
|
124
|
+
"role": "Founder & Software Engineer",
|
|
125
|
+
"linkedin": "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "Lorenzo Padoan",
|
|
129
|
+
"role": "Founder & Product Engineer",
|
|
130
|
+
"linkedin": "https://www.linkedin.com/in/lorenzo-padoan-4521a2154/"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"social_media_links": {
|
|
134
|
+
"linkedin": "https://www.linkedin.com/company/101881123",
|
|
135
|
+
"twitter": "https://x.com/scrapegraphai",
|
|
136
|
+
"github": "https://github.com/ScrapeGraphAI/Scrapegraph-ai"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
Il existe d'autres pipelines qui peuvent être utilisés pour extraire des informations de plusieurs pages, générer des scripts Python, ou même générer des fichiers audio.
|
|
141
|
+
|
|
142
|
+
| Nom du pipeline | Description |
|
|
143
|
+
|-------------------------|------------------------------------------------------------------------------------------------------------------|
|
|
144
|
+
| SmartScraperGraph | Scraper d'une seule page qui n'a besoin que d'une invite utilisateur et d'une source d'entrée. |
|
|
145
|
+
| SearchGraph | Scraper multi-pages qui extrait des informations des n premiers résultats d'un moteur de recherche. |
|
|
146
|
+
| SpeechGraph | Scraper d'une seule page qui extrait des informations d'un site web et génère un fichier audio. |
|
|
147
|
+
| ScriptCreatorGraph | Scraper d'une seule page qui extrait des informations d'un site web et génère un script Python. |
|
|
148
|
+
| SmartScraperMultiGraph | Scraper multi-pages qui extrait des informations de plusieurs pages à partir d'une seule invite et d'une liste de sources. |
|
|
149
|
+
| ScriptCreatorMultiGraph | Scraper multi-pages qui génère un script Python pour extraire des informations de plusieurs pages et sources. |
|
|
150
|
+
|
|
151
|
+
Pour chacun de ces graphes, il existe la version multi. Elle permet de faire des appels au LLM en parallèle.
|
|
152
|
+
|
|
153
|
+
Il est possible d'utiliser différents LLM via des API, telles qu'**OpenAI**, **Groq**, **Azure**, **Gemini**, **MiniMax** et d'autres, ou des modèles locaux en utilisant **Ollama**.
|
|
154
|
+
|
|
155
|
+
N'oubliez pas d'installer [Ollama](https://ollama.com/) et de télécharger les modèles en utilisant la commande **ollama pull**, si vous souhaitez utiliser des modèles locaux.
|
|
156
|
+
|
|
157
|
+
## 📖 Documentation
|
|
158
|
+
|
|
159
|
+
[](https://colab.research.google.com/drive/1sEZBonBMGP44CtO6GQTwAlL0BGJXjtfd?usp=sharing)
|
|
160
|
+
|
|
161
|
+
La documentation pour ScrapeGraphAI se trouve [ici](https://docs.scrapegraphai.com/introduction).
|
|
162
|
+
|
|
163
|
+
## 🤝 Contribuer
|
|
164
|
+
|
|
165
|
+
N'hésitez pas à contribuer et à rejoindre notre serveur Discord pour discuter avec nous des améliorations et nous donner des suggestions !
|
|
166
|
+
|
|
167
|
+
Veuillez consulter les [directives de contribution](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/CONTRIBUTING.md).
|
|
168
|
+
|
|
169
|
+
[](https://discord.gg/uJN7TYcpNa)
|
|
170
|
+
[](https://www.linkedin.com/company/scrapegraphai/)
|
|
171
|
+
[](https://twitter.com/scrapegraphai)
|
|
172
|
+
|
|
173
|
+
## 🔗 API et SDK ScrapeGraph
|
|
174
|
+
Si vous cherchez une solution rapide pour intégrer ScrapeGraph dans votre système, consultez notre puissante API [ici !](https://dashboard.scrapegraphai.com/login)
|
|
175
|
+
|
|
176
|
+
[](https://dashboard.scrapegraphai.com/login)
|
|
177
|
+
|
|
178
|
+
Nous proposons des SDK en Python et Node.js, ce qui facilite leur intégration dans vos projets. Découvrez-les ci-dessous :
|
|
179
|
+
|
|
180
|
+
| SDK | Langage | Lien GitHub |
|
|
181
|
+
|-----------|----------|-----------------------------------------------------------------------------|
|
|
182
|
+
| Python SDK | Python | [scrapegraph-py](https://docs.scrapegraphai.com/sdks/python) |
|
|
183
|
+
| Node.js SDK | Node.js | [scrapegraph-js](https://docs.scrapegraphai.com/sdks/javascript) |
|
|
184
|
+
|
|
185
|
+
La documentation officielle de l'API est disponible [ici](https://docs.scrapegraphai.com/introduction).
|
|
186
|
+
|
|
187
|
+
## 🔥 Benchmark
|
|
188
|
+
|
|
189
|
+
Selon le benchmark Firecrawl [Firecrawl benchmark](https://scrapegraphai.com/compare/firecrawl), ScrapeGraph est le meilleur scraper sur le marché !
|
|
190
|
+
|
|
191
|
+

|
|
192
|
+
|
|
193
|
+
## 📈 Télémétrie
|
|
194
|
+
Nous recueillons des mesures d'utilisation anonymes pour améliorer la qualité de notre package et l'expérience utilisateur. Les données nous aident à hiérarchiser les améliorations et à assurer la compatibilité. Si vous souhaitez vous désinscrire, définissez la variable d'environnement SCRAPEGRAPHAI_TELEMETRY_ENABLED=false. Pour plus d'informations, veuillez consulter la documentation [ici](https://docs.scrapegraphai.com/introduction).
|
|
195
|
+
|
|
196
|
+
## ❤️ Contributeurs
|
|
197
|
+
[](https://github.com/ScrapeGraphAI/Scrapegraph-ai/graphs/contributors)
|
|
198
|
+
|
|
199
|
+
## 🎓 Citations
|
|
200
|
+
Si vous avez utilisé notre bibliothèque à des fins de recherche, veuillez nous citer avec la référence suivante :
|
|
201
|
+
```text
|
|
202
|
+
@misc{scrapegraph-ai,
|
|
203
|
+
author = {Lorenzo Padoan, Marco Vinciguerra},
|
|
204
|
+
title = {Scrapegraph-ai},
|
|
205
|
+
year = {2024},
|
|
206
|
+
url = {https://github.com/ScrapeGraphAI/Scrapegraph-ai},
|
|
207
|
+
note = {A Python library for scraping leveraging large language models}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
## Auteurs
|
|
211
|
+
|
|
212
|
+
| | Info Contact |
|
|
213
|
+
|--------------------|----------------------|
|
|
214
|
+
| Marco Vinciguerra | [](https://www.linkedin.com/in/marco-vinciguerra-7ba365242/) |
|
|
215
|
+
| Lorenzo Padoan | [](https://www.linkedin.com/in/lorenzo-padoan-4521a2154/) |
|
|
216
|
+
|
|
217
|
+
## 📜 Licence
|
|
218
|
+
|
|
219
|
+
ScrapeGraphAI est sous licence MIT. Consultez le fichier [LICENSE](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/LICENSE) pour plus d'informations.
|
|
220
|
+
|
|
221
|
+
## Remerciements
|
|
222
|
+
|
|
223
|
+
- Nous tenons à remercier tous les contributeurs au projet et la communauté open-source pour leur soutien.
|
|
224
|
+
- ScrapeGraphAI est destiné uniquement à l'exploration de données et à la recherche. Nous ne sommes pas responsables de toute mauvaise utilisation de la bibliothèque.
|
|
225
|
+
|
|
226
|
+
Fait avec ❤️ par [ScrapeGraph AI](https://scrapegraphai.com)
|
|
227
|
+
|
|
228
|
+
[Scarf tracking](https://static.scarf.sh/a.png?x-pxid=102d4b8c-cd6a-4b9e-9a16-d6d141b9212d)
|