scrapegraphai 2.2.0b4__tar.gz → 2.2.0b5__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.0b4 → scrapegraphai-2.2.0b5}/CHANGELOG.md +7 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/PKG-INFO +1 -1
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/pyproject.toml +1 -1
- scrapegraphai-2.2.0b5/scrapegraphai/docloaders/__init__.py +30 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/chromium.py +9 -2
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_node.py +1 -1
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/robots_node.py +1 -1
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/conftest.py +15 -0
- scrapegraphai-2.2.0b4/scrapegraphai/docloaders/__init__.py +0 -15
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.gitattributes +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/FUNDING.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/custom.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/codeql.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/dependency-review.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/release.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.github/workflows/test-suite.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.gitignore +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.pre-commit-config.yaml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.releaserc.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/.semantic-commits-applied +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/CODE_OF_CONDUCT.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/CONTRIBUTING.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/Dockerfile +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/LICENSE +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/Makefile +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/PullRequests/PR_1027_reviews.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/SECURITY.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/SEMANTIC_COMMITS.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/TESTING_INFRASTRUCTURE.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/citation.cff +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/codebeaver.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docker-compose.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/api-banner.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/api_banner.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_1.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_2.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_3.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/apikey_4.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/browserbase_logo.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/codespaces-badge.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/histogram.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/omniscrapergraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/omnisearchgraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/project_overview_diagram.fig +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/project_overview_diagram.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scrapegraphai_logo.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scrapegraphai_logo.svg +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/scriptcreatorgraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/searchgraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/sgai-hero.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/smartscrapergraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/assets/speechgraph.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/chinese.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/french.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/german.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/italian.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/japanese.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/korean.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/portuguese.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/russian.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/spanish.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/timeout_configuration.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/docs/turkish.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/ScrapegraphAI_cookbook.ipynb +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/ollama/code_generator_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/code_generator_graph/openai/code_generator_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/csv_scraper_graph_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/csv_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/ollama/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/csv_scraper_graph_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/csv_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/csv_scraper_graph/openai/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/ollama/custom_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/openai/custom_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/ollama/depth_search_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/depth_search_graph/openai/depth_search_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/ollama/document_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/ollama/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/document_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/inputs/markdown_example.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/openai/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/Savedscreenshots/test_image.jpeg +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/authenticated_playwright.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/browser_base_integration.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/chromium_selenium.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/cond_smartscraper_usage.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/conditional_usage.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/custom_prompt.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/example.yml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/force_mode.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/html_mode.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/load_yml.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/no_cut.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/rag_caching.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/reasoning.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/scrape_do.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/screenshot_scaping.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/serch_graph_scehma.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/slow_mo.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/undected_playwright.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/json_scraper_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/ollama/json_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/json_scraper_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/json_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/md_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/json_scraper_graph/openai/omni_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/readme.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/omni_search_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/readme.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/ollama/script_generator_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/ollama/script_multi_generator_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/openai/script_generator_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/ollama/search_graph_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/ollama/search_graph_schema_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_graph_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_link_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/readme.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/searchscraper_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/nvidia/smart_scraper_nvidia.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_lite_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_concat_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_lite_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/ollama/smart_scraper_schema_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_lite_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_concat_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_lite_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/openai/smart_scraper_schema_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/readme.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai_v3.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/speech_graph_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/README.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/xml_scraper_graph_multi_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/ollama/xml_scraper_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/xml_scraper_graph_multi_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/xml_scraper_graph/openai/xml_scraper_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/media/banner.png +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/pytest.ini +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/builders/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/builders/graph_builder.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/browser_base.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/plasmate.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/docloaders/scrape_do.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/abstract_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/base_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/code_generator_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/csv_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/csv_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/depth_search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/document_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/document_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/json_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/json_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/markdownify_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/omni_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/omni_search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/screenshot_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/script_creator_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/script_creator_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/search_link_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_lite_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_batch_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_concat_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/smart_scraper_multi_lite_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/speech_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/xml_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/graphs/xml_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/default_filters.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/models_tokens.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/nodes_metadata.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/robots.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/helpers/schemas.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/burr_bridge.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/indexify_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/integrations/scrapegraph_py_compat.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/clod.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/deepseek.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/minimax.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/nvidia.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/oneapi.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/openai_itt.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/openai_tts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/models/xai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/base_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/batch_generate_answer_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/concat_answers_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/conditional_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/description_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_node_level_k.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/fetch_screen_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_csv_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_from_image_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_node_k_level.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_answer_omni_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_code_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/generate_scraper_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/get_probable_tags_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/graph_iterator_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/html_analyzer_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/image_to_text_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/markdownify_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/merge_answers_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/merge_generated_scripts_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/parse_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/parse_node_depth_k_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/prompt_refiner_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/rag_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/reasoning_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_internet_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_link_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/search_node_with_context.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/nodes/text_to_speech_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/description_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_csv_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_omni_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_pdf_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_answer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/generate_code_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/get_probable_tags_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/html_analyzer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/merge_answer_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/merge_generated_scripts_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/prompt_refiner_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/reasoning_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/robots_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_internet_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_link_node_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/prompts/search_node_with_context_prompts.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/telemetry/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/telemetry/telemetry.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/batch_api.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/cleanup_code.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/cleanup_html.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/code_error_analysis.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/code_error_correction.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/convert_to_md.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/copy.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/custom_callback.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/data_export.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/dict_content_compare.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/llm_callback_manager.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/logging.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/model_costs.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/output_parser.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/parse_state_keys.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/prettify_exec_info.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/research_web.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/save_audio_from_bytes.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/save_code_to_file.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/schema_trasform.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/screenshot_preparation.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/screenshot_scraping/text_detection.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/split_text_into_chunks.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/sys_dynamic_import.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizer.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_mistral.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/scrapegraphai/utils/tokenizers/tokenizer_openai.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/test +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/QUICKSTART.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/README_TESTING.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/Readme.md +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/benchmarking.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/helpers.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/mock_server/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/fixtures/mock_server/server.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/.env.example +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/abstract_graph_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/code_generator_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/depth_search_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/scrape_plain_text_mistral_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/scrape_xml_ollama_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/screenshot_scraper_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/script_generator_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/search_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/search_link_ollama.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_clod_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_ernie_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_fireworks_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_multi_lite_graph_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_ollama_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/smart_scraper_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/graphs/xml_scraper_openai_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/__init__.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_file_formats_integration.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_multi_graph_integration.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/integration/test_smart_scraper_integration.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/fetch_node_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/books.xml +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/example.json +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/plain_html_example.txt +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/inputs/username.csv +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/robot_node_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/search_internet_node_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/nodes/search_link_node_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_batch_api.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_chromium.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_cleanup_html.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_csv_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_depth_search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_fetch_node_timeout.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_generate_answer_node.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_json_scraper_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_json_scraper_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_minimax_models.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_models_tokens.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_omni_search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_plasmate.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_scrape_do.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_script_creator_multi_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_search_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/test_smart_scraper_multi_concat_graph.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/convert_to_md_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/copy_utils_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/output_parser_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/parse_state_keys_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/research_web_test.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/test_proxy_rotation.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/tests/utils/test_sys_dynamic_import.py +0 -0
- {scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/uv.lock +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [2.2.0-beta.5](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.4...v2.2.0-beta.5) (2026-06-23)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* lazy imports to prevent torchcodec FFmpeg DLL crash on Windows ([#1089](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1089)) ([2f55377](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/2f55377010fb16c81655aa1c8d08b88daa880797))
|
|
7
|
+
|
|
1
8
|
## [2.2.0-beta.4](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v2.2.0-beta.3...v2.2.0-beta.4) (2026-06-11)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: scrapegraphai
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.0b5
|
|
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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This module handles document loading functionalities for the ScrapeGraphAI application.
|
|
3
|
+
|
|
4
|
+
Note: ChromiumLoader and PlasmateLoader are lazy-imported to avoid triggering
|
|
5
|
+
torchcodec/FFmpeg DLL loading at import time (sentence_transformers -> torchcodec chain).
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .browser_base import browser_base_fetch
|
|
9
|
+
from .scrape_do import scrape_do_fetch
|
|
10
|
+
|
|
11
|
+
_LAZY_MODULES = {
|
|
12
|
+
"ChromiumLoader": ".chromium",
|
|
13
|
+
"PlasmateLoader": ".plasmate",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __getattr__(name):
|
|
18
|
+
if name in _LAZY_MODULES:
|
|
19
|
+
import importlib
|
|
20
|
+
module = importlib.import_module(_LAZY_MODULES[name], __package__)
|
|
21
|
+
return getattr(module, name)
|
|
22
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
"browser_base_fetch",
|
|
27
|
+
"ChromiumLoader",
|
|
28
|
+
"PlasmateLoader",
|
|
29
|
+
"scrape_do_fetch",
|
|
30
|
+
]
|
|
@@ -3,7 +3,6 @@ from typing import Any, AsyncIterator, Iterator, List, Optional, Union
|
|
|
3
3
|
|
|
4
4
|
import aiohttp
|
|
5
5
|
import async_timeout
|
|
6
|
-
from langchain_community.document_loaders.base import BaseLoader
|
|
7
6
|
from langchain_core.documents import Document
|
|
8
7
|
|
|
9
8
|
from ..utils import Proxy, dynamic_import, get_logger, parse_or_search_proxy
|
|
@@ -11,7 +10,7 @@ from ..utils import Proxy, dynamic_import, get_logger, parse_or_search_proxy
|
|
|
11
10
|
logger = get_logger("web-loader")
|
|
12
11
|
|
|
13
12
|
|
|
14
|
-
class ChromiumLoader
|
|
13
|
+
class ChromiumLoader:
|
|
15
14
|
"""Scrapes HTML pages from URLs using a (headless) instance of the
|
|
16
15
|
Chromium web driver with proxy protection.
|
|
17
16
|
|
|
@@ -436,6 +435,14 @@ class ChromiumLoader(BaseLoader):
|
|
|
436
435
|
finally:
|
|
437
436
|
await browser.close()
|
|
438
437
|
|
|
438
|
+
def load(self) -> List[Document]:
|
|
439
|
+
"""Load all documents synchronously."""
|
|
440
|
+
return list(self.lazy_load())
|
|
441
|
+
|
|
442
|
+
async def aload(self) -> List[Document]:
|
|
443
|
+
"""Load all documents asynchronously."""
|
|
444
|
+
return [doc async for doc in self.alazy_load()]
|
|
445
|
+
|
|
439
446
|
def lazy_load(self) -> Iterator[Document]:
|
|
440
447
|
"""
|
|
441
448
|
Lazily load text content from the provided URLs.
|
|
@@ -7,7 +7,6 @@ from typing import List, Optional
|
|
|
7
7
|
import concurrent.futures
|
|
8
8
|
|
|
9
9
|
import requests
|
|
10
|
-
from langchain_community.document_loaders import PyPDFLoader
|
|
11
10
|
from langchain_core.documents import Document
|
|
12
11
|
from langchain_openai import AzureChatOpenAI, ChatOpenAI
|
|
13
12
|
|
|
@@ -182,6 +181,7 @@ class FetchNode(BaseNode):
|
|
|
182
181
|
"""
|
|
183
182
|
|
|
184
183
|
if input_type == "pdf":
|
|
184
|
+
from langchain_community.document_loaders import PyPDFLoader
|
|
185
185
|
loader = PyPDFLoader(source)
|
|
186
186
|
# PyPDFLoader.load() can be blocking for large PDFs. Run it in a thread and
|
|
187
187
|
# enforce the configured timeout if provided.
|
|
@@ -7,7 +7,6 @@ from urllib.parse import urlparse
|
|
|
7
7
|
|
|
8
8
|
from langchain_core.output_parsers import CommaSeparatedListOutputParser
|
|
9
9
|
from langchain_core.prompts import PromptTemplate
|
|
10
|
-
from langchain_community.document_loaders import AsyncChromiumLoader
|
|
11
10
|
|
|
12
11
|
from ..helpers import robots_dictionary
|
|
13
12
|
from ..prompts import TEMPLATE_ROBOT
|
|
@@ -90,6 +89,7 @@ class RobotsNode(BaseNode):
|
|
|
90
89
|
else:
|
|
91
90
|
parsed_url = urlparse(source)
|
|
92
91
|
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
|
92
|
+
from langchain_community.document_loaders import AsyncChromiumLoader
|
|
93
93
|
loader = AsyncChromiumLoader(f"{base_url}/robots.txt")
|
|
94
94
|
document = loader.load()
|
|
95
95
|
if "ollama" in self.llm_model.model:
|
|
@@ -14,9 +14,24 @@ from pathlib import Path
|
|
|
14
14
|
from typing import Any, Dict
|
|
15
15
|
from unittest.mock import Mock
|
|
16
16
|
|
|
17
|
+
import sys
|
|
18
|
+
import types
|
|
19
|
+
|
|
17
20
|
import pytest
|
|
18
21
|
from dotenv import load_dotenv
|
|
19
22
|
|
|
23
|
+
# Mock torchcodec to prevent FFmpeg DLL crashes at import time.
|
|
24
|
+
# sentence_transformers -> torchcodec -> FFmpeg native DLLs can't load on some systems.
|
|
25
|
+
_tc = types.ModuleType("torchcodec")
|
|
26
|
+
_tc.__version__ = "0.0.0"
|
|
27
|
+
_tc.__file__ = "<mock>"
|
|
28
|
+
_tc.__spec__ = types.ModuleType("spec")
|
|
29
|
+
_tc.__spec__.name = "torchcodec"
|
|
30
|
+
_tc.__spec__.loader = None
|
|
31
|
+
_tc.__spec__.submodule_search_locations = []
|
|
32
|
+
if "torchcodec" not in sys.modules:
|
|
33
|
+
sys.modules["torchcodec"] = _tc
|
|
34
|
+
|
|
20
35
|
# Load environment variables
|
|
21
36
|
load_dotenv()
|
|
22
37
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This module handles document loading functionalities for the ScrapeGraphAI application.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from .browser_base import browser_base_fetch
|
|
6
|
-
from .chromium import ChromiumLoader
|
|
7
|
-
from .plasmate import PlasmateLoader
|
|
8
|
-
from .scrape_do import scrape_do_fetch
|
|
9
|
-
|
|
10
|
-
__all__ = [
|
|
11
|
-
"browser_base_fetch",
|
|
12
|
-
"ChromiumLoader",
|
|
13
|
-
"PlasmateLoader",
|
|
14
|
-
"scrape_do_fetch",
|
|
15
|
-
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/ollama/custom_graph_ollama.py
RENAMED
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/custom_graph/openai/custom_graph_openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/document_scraper_graph/.env.example
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/extras/Savedscreenshots/test_image.jpeg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai.py
RENAMED
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/markdownify/markdownify_scrapegraphai_v3.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/omni_scraper_graph/omni_search_openai.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/script_generator_graph/.env.example
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/ollama/search_graph_ollama.py
RENAMED
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/openai/search_graph_openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/.env.example
RENAMED
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/search_graph/scrapegraphai/readme.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/smart_scraper_graph/scrapegraphai/readme.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scrapegraphai-2.2.0b4 → scrapegraphai-2.2.0b5}/examples/speech_graph/speech_graph_openai.py
RENAMED
|
File without changes
|
|
File without changes
|