blog-text-scraper

blog-text-scraper is an agent for Claude Code from Mor-Li/ccblog. It costs 388 tokens per session (1,094 once invoked), scanned A, original, MIT.

An automated agent for extracting the main text from a blog article given its web address. It removes navigation, sidebars, comments, and advertisements while preserving the article's wording and structure.

In plain words
What is it for?
Use it to scrape a blog post's main text, preserve paragraphs and line breaks, and save the result under a blog-specific folder with an article-based filename.
Why use it?
It saves developers from manually copying and cleaning article content. It also organizes the extracted text into folders and filenames based on the blog and article.

Agent for Claude Code

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.

agentmods
npx agentmods add agents/mor-li/ccblog/blog-text-scraper
Clone the repo
git clone --depth 1 https://github.com/Mor-Li/ccblog

Made for: Claude Code.

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 blog-text-scraper

README.md
[![agentmods](https://agentmods.dev/badge/agents/mor-li/ccblog/blog-text-scraper.svg)](https://agentmods.dev/agents/mor-li/ccblog/blog-text-scraper)
Your own site
<a href="https://agentmods.dev/agents/mor-li/ccblog/blog-text-scraper"><img src="https://agentmods.dev/badge/agents/mor-li/ccblog/blog-text-scraper.svg" alt="Measured on agentmods" height="20"></a>
Per session 388 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,094 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00388 $0.01094
Opus 5 $0.00194 $0.00547
Sonnet 5 $0.00078 $0.00219
Haiku 4.5 $0.00039 $0.00109

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

Security

Grade A, and why

blog-text-scraper scanned grade A with 0 findings 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 5d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/blog-text-scraper.md · 75 lines

How it starts

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

You are an elite blog text content scraper specialized in extracting clean, unmodified article text from blog posts and saving it in an organized file structure.

Your Core Responsibilities

  1. Accept Input: You will receive a blog article URL as input.

  2. Extract Text Content: Scrape the main text content from the blog post, preserving it exactly as it appears (原封不动). You should:

    • Identify and extract only the main article body text
    • Exclude navigation elements, sidebars, comments, and advertisements
    • Preserve formatting, line breaks, and paragraph structure
    • Include all article text without modification or summarization
  3. Determine File Location: Save the extracted text to the following path structure:

    • Base path: blog/<blog_name>/
    • Filename: Use the article title in Chinese format (e.g., 朱正文.马当.txt or similar)
    • The blog_name should be extracted from the URL or site name
  4. Save Content: Write the extracted text to the determined file path, creating necessary directories if they don't exist.

Operational Guidelines

Text Extraction Best Practices:

  • Use robust web scraping libraries (e.g., BeautifulSoup, requests, or similar)
  • Handle different blog platforms (Medium, WordPress, custom blogs, etc.)
  • Identify main content using semantic HTML tags (article, main, content divs)
  • Remove JavaScript, CSS, and other non-text elements
  • Preserve special characters and Unicode text properly

Script Management: If you need to create any helper scripts during the scraping process, create them in the scripts/ directory, NOT in the root ccblog directory or blog subdirectories.

Error Handling:

  • If the URL is inaccessible, report the specific error (timeout, 404, etc.)
  • If the main content cannot be identified, explain what content was found
  • If file writing fails, report the filesystem error clearly
  • Provide clear feedback about what was successfully scraped and saved

Quality Assurance:

  • Verify the scraped content is not empty or truncated
  • Ensure the saved file is readable and properly encoded (UTF-8)
  • Report the character/word count of the extracted text
  • Confirm the file path where content was saved

Read the full file on GitHub · 75 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. 5d ago First seen · 75 lines · 0 tokens per session scan A a0bc22c26feb

Subscribe to this mod's changes

blog-text-scraper is an agent published in the GitHub repository Mor-Li/ccblog (134 stars, last pushed 1mo ago), licensed MIT. It adds 388 tokens to every session and 1,094 once invoked, about $0.0019 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

qa

Use when testing application quality via browser dogfood, E2E tests, or API smoke tests. Navigates the app with the available browser tool, takes screenshots, checks console errors, and runs relevant E2E tests. Read-only — reports issues but never edits code. Also use when the user says 'test this', 'dogfood', 'QA'…

exceptionless/Exceptionless · 85 tokens

web-research-analyst

Web research: browser automation, Tavily API, competitive intelligence, documentation capture, technical recon.

yonatangross/orchestkit · 26 tokens

alchemist

Creative technologist who sees the browser as an unexplored physics engine. Consult when building UI that needs to feel alive - scroll-driven reveals, morphing transitions, spatial animation systems, anything where the interaction itself IS the product. Thinks in weight, tension, and breath before thinking in code.…

drobins25/craft · 355 tokens

praman-sap-planner-cli

SAP UI5 test planner via Playwright CLI. Token-efficient alternative to MCP planner. Generates test plan + gold-standard spec using CLI commands.

mrkanitkar/playwright-praman · 36 tokens

FAI Browser Agent

Browser automation agent — navigates websites, extracts data, and executes web workflows using Playwright MCP and vision analysis. Domain-restricted, no credential entry, human approval for transactions.

frootai/frootai · 41 tokens

dogfood-persona

Drives the running whiteboard app as a realistic end-user persona via the Playwright MCP browser tools, to surface friction (bugs, missing affordances, confusing/slow/dead-end flows). Spawned by the dogfood-triage workflow and by the review workflow's optional Dogfood phase. Pass the persona, goal, app URL, and (for…

kamiazya/whiteboard · 86 tokens