Data Scraper Agent logo

Data Scraper Agent

Community
brucesongs
data-scraper-agent

Automated data collection from structured sources: CVE databases, threat intelligence feeds, exploit databases, and security advisories. Transform unstructured web data into structured knowledge units.

Overview

Publisherbrucesongs
Repositorykali-claw
Skill namedata-scraper-agent
Stars
70
Forks
18
Bundled files
12
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by brucesongs on GitHub. Read the source before you install it.

Installation

Install the Data Scraper Agent AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/brucesongs/kali-claw.git /tmp/kali-claw
mkdir -p .claude/skills
cp -r /tmp/kali-claw/skills/data-scraper-agent .claude/skills/data-scraper-agent
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Data Scraper Agent in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Data Scraper Agent on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Data Scraper Agent is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Data Scraper Agent

Summary

Transform unstructured web data into structured knowledge units.

Domain: research

Skill Identity

AttributeValue
DomainIntelligence Gathering
Skill IDdata-scraper-agent
Version1.0.0
Hacker LawsLaw 3 (Intelligence Over Force), Law 9 (Systematic Over Random)
Related Skillsdeep-research, osint, knowledge-ops

Purpose

Automated data collection from structured sources: CVE databases, threat intelligence feeds, exploit databases, and security advisories. Transform unstructured web data into structured knowledge units.

Core Capabilities

  1. CVE Database Scraping: NVD, MITRE, vendor-specific databases
  2. Exploit Database Collection: Exploit-DB, GitHub security advisories
  3. Threat Intel Feeds: Parse and filter IOC feeds
  4. Structured Data Extraction: JSON/XML APIs, HTML scraping

Use Cases

  • Vulnerability Research: Collect CVEs for specific products
  • Exploit Availability: Check if public exploits exist for CVEs
  • Threat Intelligence: Aggregate IOCs for a campaign
  • Vendor Advisories: Monitor vendor security bulletins

Tools

  • BeautifulSoup: HTML parsing
  • Scrapy: Web scraping framework
  • requests: HTTP client
  • jq: JSON filtering

Scraping Strategy

  • API-first: Prefer JSON APIs (NVD 2.0, GitHub Advisory) over HTML scraping — schemas are stable, rate limits documented, content validated.
  • Pagination discipline: Always honor Link: rel="next" headers or cursor-based tokens; never scrape past published page limits.
  • Selective extraction: Pull only the fields you need (cve.id, descriptions[*].value, metrics.cvssMetricV31) instead of dumping full records.
  • Incremental sync: Track lastModifiedDate watermarks per source to avoid re-fetching unchanged records.

Ethical Scraping

  1. Respect robots.txt even when the legal status is unclear — courts treat ignored robots files as a hostile signal.
  2. Add a descriptive User-Agent (kali-claw-research/1.0 contact@org) so site operators can reach you.
  3. Throttle to ≤1 req/sec by default; back off exponentially on 429/503.
  4. Cache aggressively — If-Modified-Since and ETag cut load on both sides.
  5. Avoid scraping content behind authentication unless explicitly authorized.

Data Normalization

  • Coerce all timestamps to UTC ISO 8601 before persisting.
  • Map CVE severity to a canonical scale (CVSS v3.1 base score); store vendor-specific scores separately.
  • Deduplicate by (source, primary_id) tuples — the same CVE appears in NVD, MITRE, and vendor feeds with slight schema drift.
  • Preserve raw source payloads alongside normalized records for audit and reprocessing.

Common Pitfalls

  • Brittle CSS selectors — HTML structures change without notice; prefer semantic anchors (microdata, JSON-LD) when available.
  • Silent rate-limit bans — some APIs degrade quietly instead of 429; monitor response sizes and freshness.
  • Encoding bugs — non-UTF-8 sources (older vendor advisories) corrupt downstream pipelines without explicit decoding.
  • Schema drift — NVD 1.x vs 2.0 schemas differ subtly; pin client versions and run schema validation per ingest.

Pipeline Architecture

  • Extractor stage: Fetch raw content from source (HTTP GET, API call, RSS feed). Validate HTTP status and content-type before proceeding.
  • Parser stage: Convert raw bytes to structured records using schema-specific parsers (JSON, XML, HTML table). Reject malformed records to quarantine.
  • Transformer stage: Normalize fields (dates, severity, identifiers), deduplicate, and enrich with cross-references (link CVEs to advisories).
  • Loader stage: Persist normalized records to knowledge store. Use upsert semantics to handle re-ingestion without duplication.

Error Handling and Retry

  • Classify errors as retryable (network timeout, HTTP 429/503) vs non-retryable (HTTP 404, invalid API key, schema mismatch).
  • Implement exponential backoff with jitter for retryable errors: sleep(base * 2^attempt + random(0, jitter)).
  • Set per-source circuit breakers: after N consecutive failures, pause that source for a cooling period and alert.
  • Log all retry attempts with timestamps and error details for post-mortem analysis.

Source-Specific Patterns

  • NVD 2.0 API: Use startIndex + resultsPerPage pagination; filter by cpeName for product-specific queries; handle 503 during peak hours.
  • GitHub Advisory: Query by ecosystem (ecosystem=PIP), severity, and date range; paginate with cursor tokens.
  • Exploit-DB: Scrape search results with rate limiting; cross-reference CVEs via the files_cves.csv mapping file.
  • Vendor Advisories: Each vendor has unique HTML structure; write dedicated parsers per vendor, share common extraction utilities.

Performance Optimization

  • Use async I/O (aiohttp, asyncio) for parallel requests across independent sources — 10x throughput over sequential fetching.
  • Cache raw HTTP responses with requests-cache or similar; set TTL per source (NVD: 1h, vendor advisories: 24h).
  • Stream large responses instead of buffering into memory — parse JSON incrementally with ijson for large datasets.
  • Batch database writes (insert 100 records per transaction) instead of individual inserts.

Monitoring and Alerting

  • Track scrape success rate per source (target >95%); alert on sustained drops indicating source changes or IP blocks.
  • Monitor ingestion lag: time between source publication and local availability. Flag sources where lag exceeds threshold.
  • Log schema validation failures per source — rising failure rates signal upstream format changes.
  • Emit structured metrics (source, records_fetched, records_parsed, records_loaded, errors) for dashboard visualization.

Detection Methods

Bot Detection (Defender Side)

  • Browser fingerprint anomalies: Headless Chrome signatures, missing plugins, WebDriver flag.
  • Behavioral patterns: Linear mouse paths, instant page transitions, no scrolling jitter.
  • Rate patterns: Request rate exceeding human baseline (>10 req/sec sustained).
  • TLS fingerprint: JA3/JA4 mismatches; curl/Python signatures vs browser.

SIEM Detection Rules

  • Cloudflare Bot Management: ML-based bot scoring.
  • Akamai Bot Manager: Behavioral fingerprinting.
  • PerimeterX / DataDome: Real-time bot detection.

Defense Evasion Techniques

Stealth Automation

  • puppeteer-extra-stealth: Removes WebDriver signature.
  • undetected-chromedriver: Patches ChromeDriver to bypass detection.
  • Real browser binaries: Use real Chrome/Firefox (not headless); slower but stealthier.
  • Camoufox: Firefox fork with built-in fingerprint randomization.
  • Realistic timing: Add jitter to mouse movements; random delays between actions.

Network Stealth

  • Residential proxies: Bright Data, Smartproxy; mimics real user IPs.
  • Mobile carrier proxies: 4G/5G IPs; harder to block (legitimate user pattern).
  • IP rotation: Rotate per session; avoid single-IP burst.
  • TLS fingerprint matching: curl-impersonate to match real browser JA3.

Behavioral Mimicry

  • Human-like navigation: Visit home page → category → product (don't deep-link directly).
  • Referrer chains: Use search engine referrer to look organic.
  • Mouse movement: Bezier curve mouse paths with jitter.

Integration

  • Feed scraped data to knowledge-ops for storage
  • Use deep-research to contextualize findings
  • Export to article-writing for reporting

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Data Scraper Agent AI skill do?

Automated data collection from structured sources: CVE databases, threat intelligence feeds, exploit databases, and security advisories. Transform unstructured web data into structured knowledge units.

Why use Data Scraper Agent on TypingMind?

Because you install it once and use it with any model. Data Scraper Agent is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Data Scraper Agent in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/brucesongs/kali-claw/tree/main/skills/data-scraper-agent. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Data Scraper Agent?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Data Scraper Agent?

As many as you like. As long as a model supports skills, you can use Data Scraper Agent with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Data Scraper Agent AI skill free?

Yes. It is published on GitHub by brucesongs under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇