v0.4.13
Release v0.4.13
Added 3
- Add XMLFeedSpider template that iterates over nodes of any XML feed (RSS, Atom, product feeds, etc.) and automatically decompresses gzipped feeds
- Add CSVFeedSpider template that iterates over CSV rows as dictionaries and automatically decompresses gzipped feeds
- Add scrapling-mcp command that maps directly to scrapling mcp for simpler MCP client registration
Changed 2
- Upgrade MCP server to MCP SDK v2 with built-in instructions for AI agents, tool annotations for auto-approval of read-only tools, leaner tool descriptions, and version/logo advertisement to MCP clients
- Unpin Playwright/Patchright and browser versions so the generated browser User-Agent always matches the exact Chromium version installed
Fixed 2
- Fix importing Scrapling crashing with a browserforge ValueError when fingerprints data package lags behind browser versions
- Fix MCP bulk browser tools mis-sizing their page pools that caused bulk_fetch to fail on batches of more than 50 URLs and bulk_stealthy_fetch to fetch all URLs through a single tab
A new update bringing feed spiders and a smarter MCP server 🎉
[!NOTE]
- Follow us on X for daily tips and tricks
- This will most likely be the last update before the major updates in v0.5
🚀 New Stuff and quality of life changes
- New feed spider templates.
XMLFeedSpideriterates over the nodes of any XML feed (RSS, Atom, product feeds, etc.), andCSVFeedSpideriterates over CSV rows as dictionaries. Both decompress gzipped feeds automatically. (Check the docs)from scrapling.spiders import XMLFeedSpider class RSSSpider(XMLFeedSpider): name = "rss" start_urls = ["https://example.com/feed.xml"] async def parse_node(self, response, node): yield {"title": node.findtext("title"), "link": node.findtext("link")} result = RSSSpider().start() - Upgraded the MCP server to MCP SDK v2 and made it smarter. The server now ships instructions that teach your AI agent how to use the tools efficiently; every tool declares annotations so clients like Claude Code can auto-approve the read-only ones; tool descriptions are leaner to save tokens; and the server advertises its version and logo to MCP clients. (Check the docs)
- Added a
scrapling-mcpcommand that maps directly toscrapling mcp, so registering Scrapling with MCP clients and registries that expect a single command is now a one-liner. - Unpinned Playwright/Patchright and browser versions. The generated browser User-Agent now always matches the exact Chromium version your installed Playwright/Patchright drives, so Scrapling no longer pins their versions and you can upgrade them freely. Run
scrapling install --forceafter updating to refresh the browsers.
🐛 Bug Fixes
- Fixed importing Scrapling crashing with a
browserforgeValueError when the fingerprints data package lags behind the browser versions. (Fixes #394, #396, and #400) - Fixed the MCP bulk browser tools mis-sizing their page pools, which made
bulk_fetchfail on batches of more than 50 URLs andbulk_stealthy_fetchfetch all URLs through a single tab, by @Yigtwxx in #393.
Project
- New AI Contribution Policy: AI-assisted contributions are welcome but must be disclosed in the PR or issue; submissions that look like undisclosed AI output get labeled and closed.
🙏 Special thanks to the community for all the continuous testing and feedback