From 4279ca8cbc4441a974c301042dc23493b96491db Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 12 Apr 2026 18:47:26 +0200 Subject: [PATCH] docs(agent): update skill with the latest changes --- agent-skill/Scrapling-Skill.zip | Bin 81526 -> 82913 bytes agent-skill/Scrapling-Skill/SKILL.md | 10 ++++++---- .../Scrapling-Skill/examples/README.md | 2 +- .../references/fetching/dynamic.md | 2 ++ .../references/fetching/stealthy.md | 2 ++ .../Scrapling-Skill/references/mcp-server.md | 4 ++++ 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/agent-skill/Scrapling-Skill.zip b/agent-skill/Scrapling-Skill.zip index c43d0df74a3310ba0889e6bc2f6d30f1c55b9d78..b8766e29220768219f31dd7a871e37031c2651c9 100644 GIT binary patch delta 25331 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 2. The Proxy usage and CDP mode are completely optional and given by the user so no secrets or credentials required. Depending on the user usage. > 3. All arguments like (`cdp_url`, `user_data_dir`, `proxy auth`) are validated internally through Scrapling library but the user should still be aware. -**IMPORTANT**: While using the commandline scraping commands, you MUST use the commandline argument `--ai-targeted` to protect from Prompt Injection! +**IMPORTANT**: While using the commandline scraping commands, you MUST use the commandline argument `--ai-targeted` to protect from Prompt Injection! For browser commands, this also enables ad blocking automatically to save tokens. ## Setup (once) Create a virtual Python environment through any way available, like `venv`, then inside the environment do: -`pip install "scrapling[all]>=0.4.5"` +`pip install "scrapling[all]>=0.4.6"` Then do this to download all the browsers' dependencies: @@ -156,7 +156,9 @@ Both (`fetch` / `stealthy-fetch`) share options: | --wait-selector | TEXT | CSS selector to wait for before proceeding | | --proxy | TEXT | Proxy URL in format "http://username:password@host:port" | | -H, --extra-headers | TEXT | Extra headers in format "Key: Value" (can be used multiple times) | -| --ai-targeted | None | Extract only main content and sanitize hidden elements for AI consumption (default: False) | +| --dns-over-https / --no-dns-over-https | None | Route DNS through Cloudflare's DoH to prevent DNS leaks when using proxies (default: False) | +| --block-ads / --no-block-ads | None | Block requests to ~3,500 known ad and tracker domains (default: False) | +| --ai-targeted | None | Extract only main content and sanitize hidden elements for AI consumption (default: False). Also enables ad blocking automatically. | This option is specific to `fetch` only: diff --git a/agent-skill/Scrapling-Skill/examples/README.md b/agent-skill/Scrapling-Skill/examples/README.md index 344dc0f..4f645cd 100644 --- a/agent-skill/Scrapling-Skill/examples/README.md +++ b/agent-skill/Scrapling-Skill/examples/README.md @@ -9,7 +9,7 @@ All examples collect **all 100 quotes across 10 pages**. Make sure Scrapling is installed: ```bash -pip install "scrapling[all]>=0.4.5" +pip install "scrapling[all]>=0.4.6" scrapling install --force ``` diff --git a/agent-skill/Scrapling-Skill/references/fetching/dynamic.md b/agent-skill/Scrapling-Skill/references/fetching/dynamic.md index 109fde6..f623521 100644 --- a/agent-skill/Scrapling-Skill/references/fetching/dynamic.md +++ b/agent-skill/Scrapling-Skill/references/fetching/dynamic.md @@ -76,6 +76,8 @@ All arguments for `DynamicFetcher` and its session classes: | additional_args | Additional arguments to be passed to Playwright's context as additional settings, and they take higher priority than Scrapling's settings. | ✔️ | | selector_config | A dictionary of custom parsing arguments to be used when creating the final `Selector`/`Response` class. | ✔️ | | blocked_domains | A set of domain names to block requests to. Subdomains are also matched (e.g., `"example.com"` blocks `"sub.example.com"` too). | ✔️ | +| block_ads | Block requests to ~3,500 known ad/tracking domains. Can be combined with `blocked_domains`. | ✔️ | +| dns_over_https | Route DNS queries through Cloudflare's DNS-over-HTTPS to prevent DNS leaks when using proxies. | ✔️ | | proxy_rotator | A `ProxyRotator` instance for automatic proxy rotation. Cannot be combined with `proxy`. | ✔️ | | retries | Number of retry attempts for failed requests. Defaults to 3. | ✔️ | | retry_delay | Seconds to wait between retry attempts. Defaults to 1. | ✔️ | diff --git a/agent-skill/Scrapling-Skill/references/fetching/stealthy.md b/agent-skill/Scrapling-Skill/references/fetching/stealthy.md index aea8475..7f3c896 100644 --- a/agent-skill/Scrapling-Skill/references/fetching/stealthy.md +++ b/agent-skill/Scrapling-Skill/references/fetching/stealthy.md @@ -58,6 +58,8 @@ Scrapling provides many options with this fetcher and its session classes. Befor | additional_args | Additional arguments to be passed to Playwright's context as additional settings, and they take higher priority than Scrapling's settings. | ✔️ | | selector_config | A dictionary of custom parsing arguments to be used when creating the final `Selector`/`Response` class. | ✔️ | | blocked_domains | A set of domain names to block requests to. Subdomains are also matched (e.g., `"example.com"` blocks `"sub.example.com"` too). | ✔️ | +| block_ads | Block requests to ~3,500 known ad/tracking domains. Can be combined with `blocked_domains`. | ✔️ | +| dns_over_https | Route DNS queries through Cloudflare's DNS-over-HTTPS to prevent DNS leaks when using proxies. | ✔️ | | proxy_rotator | A `ProxyRotator` instance for automatic proxy rotation. Cannot be combined with `proxy`. | ✔️ | | retries | Number of retry attempts for failed requests. Defaults to 3. | ✔️ | | retry_delay | Seconds to wait between retry attempts. Defaults to 1. | ✔️ | diff --git a/agent-skill/Scrapling-Skill/references/mcp-server.md b/agent-skill/Scrapling-Skill/references/mcp-server.md index 7bbc86b..a860f0a 100644 --- a/agent-skill/Scrapling-Skill/references/mcp-server.md +++ b/agent-skill/Scrapling-Skill/references/mcp-server.md @@ -164,6 +164,10 @@ When `main_content_only=true` (the default), the server automatically sanitizes Keep `main_content_only=true` for maximum protection. +## Ad blocking + +All browser-based tools (`fetch`, `bulk_fetch`, `stealthy_fetch`, `bulk_stealthy_fetch`) and persistent sessions (`open_session`) automatically block requests to ~3,500 known ad and tracker domains. This is always enabled in the MCP server to save tokens and speed up page loads. No configuration needed. + ## Setup Start the server (stdio transport, used by most MCP clients):