web-scraping

web-scraping is a skill for Claude Code, Codex from pencil20388-eng/browser-automation-skills. It costs 0 tokens per session (1,095 once invoked), scanned A, original, MIT.

A set of instructions for collecting organised information from websites. It covers direct downloading of page HTML and browser-based collection for pages whose content appears only after JavaScript runs.

In plain words
What is it for?
Use it to fetch pages, parse HTML, extract fields such as titles and links, and collect data from JavaScript-rendered sites when needed.
Why use it?
It helps choose a suitable collection method instead of using a slower browser for every site or missing content that is generated in the browser.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to fetch pages, parse HTML, extract fields such as titles and links, and collect data from JavaScript-rendered sites when needed.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/pencil20388-eng/browser-automation-skills/web-scraping
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add pencil20388-eng/browser-automation-skills --skill web-scraping
Clone the repo
git clone --depth 1 https://github.com/pencil20388-eng/browser-automation-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for web-scraping

README.md
[![agentmods](https://agentmods.dev/badge/skills/pencil20388-eng/browser-automation-skills/web-scraping/github.svg)](https://agentmods.dev/skills/pencil20388-eng/browser-automation-skills/web-scraping)
Your own site
<a href="https://agentmods.dev/skills/pencil20388-eng/browser-automation-skills/web-scraping"><img src="https://agentmods.dev/badge/skills/pencil20388-eng/browser-automation-skills/web-scraping/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for web-scraping

Your own site · 80×15
<a href="https://agentmods.dev/skills/pencil20388-eng/browser-automation-skills/web-scraping"><img src="https://agentmods.dev/badge/skills/pencil20388-eng/browser-automation-skills/web-scraping.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,095 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.01095
Opus 5 $0.00000 $0.00548
Sonnet 5 $0.00000 $0.00219
Haiku 4.5 $0.00000 $0.00110

Measured 11d ago against content hash 339d67fa5015, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

web-scraping scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

resp = requests.get("https://example.com", timeout=10)
skills/web-scraping/SKILL.md · 160 lines

How it starts

The opening of the file, as written. The whole thing — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Web Scraping Skill

Extract structured data from websites. Covers static scraping (fast, lightweight) and dynamic scraping (for JavaScript-rendered pages).

When to use what

Approach When to use Speed Libraries
Static (requests + BS4) Server-rendered HTML, APIs Fast requests, beautifulsoup4, lxml
Dynamic (browser) JavaScript-rendered, SPAs Slower playwright, selenium

Default to static scraping. Only use browser-based scraping if the content is rendered by JavaScript.

Installation

# Static scraping
pip install requests beautifulsoup4 lxml

# Dynamic scraping (if needed)
pip install playwright && playwright install chromium

Static Scraping Patterns

Basic page fetch + parse

import requests
from bs4 import BeautifulSoup

resp = requests.get("https://example.com", timeout=10)
resp.raise_for_status()
soup = BeautifulSoup(resp.text, "lxml")

title = soup.find("h1").text
links = [a["href"] for a in soup.select("a[href]")]

Extract structured data

products = []
for card in soup.select(".product-card"):
    products.append({
        "name": card.select_one(".name").text.strip(),
        "price": card.select_one(".price").text.strip(),
        "url": card.select_one("a")["href"],
    })

Handle pagination

all_items = []
page = 1

while True:
    resp = requests.get(f"https://example.com/products?page={page}", timeout=10)
    soup = BeautifulSoup(resp.text, "lxml")

    items = soup.select(".product-card")
    if not items:
        break  # No more pages

    for item in items:
        all_items.append(item.select_one(".name").text.strip())

    page += 1
    time.sleep(1)  # Be polite

print(f"Scraped {len(all_items)} items across {page - 1} pages")

Set headers to avoid blocks

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.5",
}
resp = requests.get(url, headers=headers, timeout=10)

Read the full file on GitHub · 160 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 160 lines · 0 tokens per session scan A 339d67fa5015

Subscribe to this mod's changes

web-scraping is a skill published in the GitHub repository pencil20388-eng/browser-automation-skills (4 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,095 tokens. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

mk:playwright-cli

Session-persistent browser automation via Playwright CLI — form filling, screenshots, data extraction, multi-step flows. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information across multiple requests. NOT for AI-driven…

ngocsangyem/MeowKit · 92 tokens

unicli

Comprehensive guide to Uni-CLI — the open Agent-Computer Interface runtime for real software. Trigger when the user needs to fetch data from websites (Twitter, Bilibili, HackerNews, GitHub, Reddit, Bloomberg, Zhihu, WeChat, and hundreds more); interact with news, finance, social, academic, shopping, or video…

olo-dot-io/Uni-CLI · 180 tokens

unicli-smart-search

Route search queries to the best platform via unicli. Use when searching across websites, social media, tech forums, news, finance, shopping, or academic sources.

olo-dot-io/Uni-CLI · 38 tokens

unicli-browser

Control broker-owned hidden, existing-Chrome, or remote browser targets with explicit Agent identity, visibility, profile partitions, and lifecycle.

olo-dot-io/Uni-CLI · 30 tokens

unicli-operate

Compatibility guide for unicli operate. Prefer unicli browser, which now exposes the same operator surface plus broker/session diagnostics.

olo-dot-io/Uni-CLI · 31 tokens

camofox-browser

Anti-detection browser automation for AI agents. Use when the user needs stealth web browsing, undetectable scraping, fingerprint spoofing, proxy rotation, or privacy-focused browser automation. Triggers include "stealth scrape", "anti-detection", "bypass fingerprinting", "camofox", "camoufox", "undetectable browser"…

redf0x1/camofox-browser · 93 tokens