Install
openclaw skills install @scrapelesshq/scrapeless-webunlocker-skillBypass website blocks and scrape web content using Scrapeless Universal Scraping API.
openclaw skills install @scrapelesshq/scrapeless-webunlocker-skillUse this skill to bypass website blocks and scrape web content using the Scrapeless Universal Scraping API. It supports JavaScript rendering, CAPTCHA solving, IP rotation, and intelligent request retries.
Authentication: Set X_API_TOKEN in your environment or in a .env file in the repo root.
Errors: On failure the script writes a JSON error to stderr and exits with code 1.
Command:
python3 scripts/webunlocker.py --url "https://example.com"
Examples:
# Scrape HTML content
python3 scripts/webunlocker.py --url "https://httpbin.io/get"
# Scrape plain text
python3 scripts/webunlocker.py --url "https://example.com" --response-type plaintext
# Scrape as Markdown
python3 scripts/webunlocker.py --url "https://example.com" --response-type markdown
# Take a screenshot
python3 scripts/webunlocker.py --url "https://example.com" --response-type png
# Capture network requests
python3 scripts/webunlocker.py --url "https://example.com" --response-type network
# Extract specific content types
python3 scripts/webunlocker.py --url "https://example.com" --response-type content --content-types emails,links,images
# Use a specific country proxy
python3 scripts/webunlocker.py --url "https://example.com" --country US
# Use POST method
python3 scripts/webunlocker.py --url "https://httpbin.org/post" --method POST --data '{"key": "value"}'
# Add custom headers
python3 scripts/webunlocker.py --url "https://example.com" --headers '{"User-Agent": "Mozilla/5.0"}'
# Use custom proxy
python3 scripts/webunlocker.py --url "https://example.com" --proxy-url "http://your-proxy-url:port"
# Enable JavaScript rendering
python3 scripts/webunlocker.py --url "https://example.com" --js-render
# Enable JavaScript rendering with headless mode
python3 scripts/webunlocker.py --url "https://example.com" --js-render --headless
# Enable JavaScript rendering and wait for specific element
python3 scripts/webunlocker.py --url "https://example.com" --js-render --wait-selector "body > div > p:nth-child(3) > a"
# Bypass Cloudflare protection with JavaScript rendering
python3 scripts/webunlocker.py --url "https://example.com" --js-render
# Bypass Cloudflare Turnstile challenge
python3 scripts/webunlocker.py --url "https://2captcha.com/demo/cloudflare-turnstile-challenge" --js-render --headless --response-type markdown
| Argument | Description | Default |
|---|---|---|
--url | Target URL | Required |
--method | HTTP method | GET |
--redirect | Allow redirects | False |
--headers | Custom headers as JSON string | None |
--data | Request data as JSON string | None |
--response-type | Response type (html, plaintext, markdown, png, jpeg, network, content) | html |
--content-types | Content types to extract (comma-separated) | None |
--country | Country code for proxy | ANY |
--proxy-url | Custom proxy URL | None |
--js-render | Enable JavaScript rendering | False |
--headless | Run browser in headless mode | False |
--wait-selector | Wait for element with this selector to appear | None |
Output: All commands return JSON objects with the scraped content or Cloudflare bypass results.
Returns the HTML content of the page as an escaped string.
Returns the plain text content of the page, removing all HTML tags.
Returns the page content formatted as Markdown for better readability.
Returns a base64 encoded string of the page screenshot.
Returns all network requests made during page load, including URLs, methods, status codes, and headers.
Returns specific content types extracted from the page, such as emails, phone numbers, headings, images, audios, videos, links, hashtags, metadata, tables, and favicon.
⚠️ Timeout Policy:
⚠️ Supported CAPTCHAs:
⚠️ Rate Limits:
⚠️ Billing: