高级网页内容提取技能,针对OpenClaw设计,采用多层级回退策略(Jina → Scrapling → WebFetch),具备智能路由、缓存和质量保障功能。
Web Reader Pro is an advanced web content extraction skill for OpenClaw that uses a multi-tier fallback strategy with intelligent routing, caching, and quality assessment.
bash
# Install dependencies
pip install -r requirements.txt
# Install Scrapling (requires Node.js)
./scripts/install_scrapling.sh
# Or install Scrapling manually
npm install -g @scrapinghub/scrapling
python
from scripts.web_reader_pro import WebReaderPro
reader = WebReaderPro()
result = reader.fetch("https://example.com")
print(result['title'])
print(result['content'])
python
reader = WebReaderPro(
jina_api_key="your-jina-key", # Optional: set via env JINA_API_KEY
cache_ttl=3600, # Cache TTL in seconds (default: 3600)
quality_threshold=200, # Min word count for quality (default: 200)
max_retries=3, # Max retries per tier (default: 3)
enable_learning=True, # Enable domain learning (default: True)
scrapling_path="/usr/local/bin/scrapling" # Path to scrapling binary
)
python
{
"title": "Page Title",
"content": "Extracted content in markdown...",
"url": "https://example.com",
"tier_used": "jina|scrapling|webfetch",
"quality_score": 85,
"cached": False,
"domain_learned_tier": "jina",
"extracted_at": "2024-01-01T00:00:00Z"
}
VariableDescriptionDefaultJINA_API_KEYJina Reader API keyRequired for Tier 1WEB_READER_CACHE_DIRCache directory path~/.openclaw/cache/web-reader-pro/``WEB_READER_LEARNING_DBLearning database path~/.openclaw/data/web-reader-pro/routes.json``WEB_READER_JINA_QUOTAJina quota limit100000
Fetch and extract content from a URL.
Parameters:
url (str): Target URLforce_refresh (bool): Bypass cache if TrueReturns: Dict with title, content, metadata
Fetch using a specific tier (bypassing automatic selection).
Parameters:
url (str): Target URLpreferred_tier (str): "jina", "scrapling", or "webfetch"Get current Jina API quota usage.
Returns: Dict with count, limit, percentage, warnings
Clear cache for specific URL or all URLs.
Parameters:
url (str, optional): Specific URL to clear, or None for allGet learned domain-to-tier mappings.
Returns: Dict of domain -> preferred tier
TierSpeedJS RenderingBest ForCostJinaFastNoStatic pages, articlesAPI callsScraplingMediumYesSPAs, dynamic contentCPUWebFetchFastestNoSimple pages, fallbacksFree
MIT