scrapling

安装量: 107
排名: #7898

安装

npx skills add https://github.com/hyperpuncher/dotagents --skill scrapling

scrapling Scrapling is a powerful Python web scraping library with a comprehensive CLI for extracting data from websites directly from the terminal without writing code. The primary use case is the extract command group for quick data extraction. Installation Install with the shell extras using uv: uv tool install "scrapling[shell]" Then install fetcher dependencies (browsers, system dependencies, fingerprint manipulation): scrapling install Extract Commands (Primary Usage) The scrapling extract command group allows you to download and extract content from websites without writing any code. Output format is determined by file extension: .md - Convert HTML to Markdown .html - Save raw HTML .txt - Extract clean text content Quick Start

Basic website download as text

scrapling extract get "https://example.com" page_content.txt

Download as markdown

scrapling extract get "https://blog.example.com" article.md

Save raw HTML

scrapling extract get "https://example.com" page.html Decision Guide: Which Command to Use? Use Case Command Simple websites, blogs, news articles get Modern web apps, dynamic content (JavaScript) fetch Protected sites, Cloudflare, anti-bot stealthy-fetch Form submissions, APIs post , put , delete HTTP Request Commands GET Request Most common command for downloading website content:

Basic download

scrapling extract get "https://news.site.com" news.md

Download with custom timeout

scrapling extract get "https://example.com" content.txt --timeout 60

Extract specific content using CSS selectors

scrapling extract get "https://blog.example.com" articles.md --css-selector "article"

Send request with cookies

scrapling extract get "https://scrapling.requestcatcher.com" content.md \ --cookies "session=abc123; user=john"

Add user agent

scrapling extract get "https://api.site.com" data.json \ -H "User-Agent: MyBot 1.0"

Add multiple headers

scrapling extract get "https://site.com" page.html \ -H "Accept: text/html" \ -H "Accept-Language: en-US"

With query parameters

scrapling extract get "https://api.example.com" data.json \ -p "page=1" -p "limit=10" GET options: -H, --headers TEXT HTTP headers "Key: Value" (multiple allowed) --cookies TEXT Cookies "name1=value1;name2=value2" --timeout INTEGER Request timeout in seconds (default: 30) --proxy TEXT Proxy URL from $PROXY_URL env variable -s, --css-selector TEXT Extract specific content with CSS selector -p, --params TEXT Query parameters "key=value" (multiple) --follow-redirects / --no-follow-redirects (default: True) --verify / --no-verify SSL verification (default: True) --impersonate TEXT Browser to impersonate (chrome, firefox) --stealthy-headers / --no-stealthy-headers (default: True) POST Request

Submit form data

scrapling extract post "https://api.site.com/search" results.html \ --data "query=python&type=tutorial"

Send JSON data

scrapling extract post "https://api.site.com" response.json \ --json '{"username": "test", "action": "search"}' POST options: (same as GET plus) -d, --data TEXT Form data "param1=value1&param2=value2" -j, --json TEXT JSON data as string PUT Request

Send data

scrapling extract put "https://api.example.com" results.html \ --data "update=info" \ --impersonate "firefox"

Send JSON data

scrapling extract put "https://api.example.com" response.json \ --json '{"username": "test", "action": "search"}' DELETE Request scrapling extract delete "https://api.example.com/resource" response.txt

With impersonation

scrapling extract delete "https://api.example.com/" response.txt \ --impersonate "chrome" Browser Fetching Commands Use browser-based fetching for JavaScript-heavy sites or when HTTP requests fail. fetch - Handle Dynamic Content For websites that load content dynamically or have slight protection:

Wait for JavaScript to load and network activity to finish

scrapling extract fetch "https://example.com" content.md --network-idle

Wait for specific element to appear

scrapling extract fetch "https://example.com" data.txt \ --wait-selector ".content-loaded"

Visible browser mode for debugging

scrapling extract fetch "https://example.com" page.html \ --no-headless --disable-resources

Use installed Chrome browser

scrapling extract fetch "https://example.com" content.md --real-chrome

With CSS selector extraction

scrapling extract fetch "https://example.com" articles.md \ --css-selector "article" \ --network-idle fetch options: --headless / --no-headless Run browser headless (default: True) --disable-resources Drop unnecessary resources for speed boost --network-idle Wait for network idle --timeout INTEGER Timeout in milliseconds (default: 30000) --wait INTEGER Additional wait time in ms (default: 0) -s, --css-selector TEXT Extract specific content --wait-selector TEXT Wait for selector before proceeding --locale TEXT User locale (default: system) --real-chrome Use installed Chrome browser --proxy TEXT Proxy URL -H, --extra-headers TEXT Extra headers (multiple) stealthy-fetch - Bypass Protection For websites with anti-bot protection or Cloudflare:

Bypass basic protection

scrapling extract stealthy-fetch "https://example.com" content.md

Solve Cloudflare challenges

scrapling extract stealthy-fetch "https://nopecha.com/demo/cloudflare" data.txt \ --solve-cloudflare \ --css-selector "#padded_content a"

Use proxy for anonymity (set PROXY_URL environment variable)

scrapling extract stealthy-fetch "https://site.com" content.md \ --proxy " $PROXY_URL "

Hide canvas fingerprint

scrapling extract stealthy-fetch "https://example.com" content.md \ --hide-canvas \ --block-webrtc stealthy-fetch options: (same as fetch plus) --block-webrtc Block WebRTC entirely --solve-cloudflare Solve Cloudflare challenges --allow-webgl / --block-webgl Allow WebGL (default: True) --hide-canvas Add noise to canvas operations CSS Selector Examples Extract specific content with the -s or --css-selector flag:

Extract all articles

scrapling extract get "https://blog.example.com" articles.md -s "article"

Extract specific class

scrapling extract get "https://example.com" titles.txt -s ".title"

Extract by ID

scrapling extract get "https://example.com" content.md -s "#main-content"

Extract links (href attributes)

scrapling extract get "https://example.com" links.txt -s "a::attr(href)"

Extract text only

scrapling extract get "https://example.com" titles.txt -s "h1::text"

Extract multiple elements with fetch

scrapling extract fetch "https://example.com" products.md \ -s ".product-card" \ --network-idle Help Commands scrapling --help scrapling extract --help scrapling extract get --help scrapling extract post --help scrapling extract fetch --help scrapling extract stealthy-fetch --help Resources Documentation: https://scrapling.readthedocs.io/ GitHub: https://github.com/D4Vinci/Scrapling

返回排行榜