Community研究与数据分析github.com

jamditis/web-scraping

具备反爬绕过、内容提取、未公开API利用和毒丸检测功能的网页抓取技能。适用于从网站提取内容、处理付费墙、实现抓取级联或处理社交媒体数据。涵盖 requests、trafilatura、Playwright(含隐身模式)、yt-dlp 和 instaloader 等模式。

web-scraping 是什么?

jamditis/web-scraping 是一个专为开发者设计的网页抓取技能,集成了多种反反爬技术和内容提取策略。它支持绕过常见的反爬机制(如验证码、IP限制、行为分析),能够高效提取网站内容(包括付费墙后的内容),并利用未公开的API获取数据。此外,该技能还集成了“毒丸检测”功能,可识别并处理网站故意投放的误导性或陷阱性数据。支持多种主流工具和库:requests(基础HTTP请求)、trafilatura(网页正文提取)、Playwright(含隐身模式,模拟真实浏览器行为)、yt-dlp(视频和音频下载)以及 instaloader(Instagram数据提取)。适用于各类抓取场景,包括社交媒体爬取、新闻聚合、电商数据监控等。建议优先使用 trafilatura 进行纯文本提取;若需渲染JavaScript,则选择 Playwright;对于反爬严格的网站,可组合 stealth 插件和代理池。该技能无特定的平台依赖,可与任何支持Python环境的AI Agent(如Claude Code、Cursor、Codex等)配合使用。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jamditis/claude-skills-journalism/tree/main/skills/web-scraping

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

web-scraping 是做什么的?

具备反爬绕过、内容提取、未公开API利用和毒丸检测功能的网页抓取技能。适用于从网站提取内容、处理付费墙、实现抓取级联或处理社交媒体数据。涵盖 requests、trafilatura、Playwright(含隐身模式)、yt-dlp 和 instaloader 等模式。

主要特性

  • 反爬绕过:集成多种策略绕过IP限制、验证码、User-Agent检测等常见反爬机制。
  • 内容提取:使用 trafilatura 和 Playwright 提取网页正文,支持付费墙后内容的访问。
  • 未公开API:通过逆向工程或模拟请求利用网站的未公开API。
  • 毒丸检测:识别并过滤网站故意投放的虚假或误导性数据。
  • 模式支持:
    • requests:基础HTTP请求,适用于简单抓取。
    • trafilatura:高效提取网页正文和元数据。
    • Playwright:带隐身模式的无头浏览器,处理JavaScript渲染。
    • yt-dlp:从YouTube等平台下载视频/音频。
    • instaloader:抓取Instagram公开资料和帖子。

快速开始

安装依赖

pip install requests trafilatura playwright yt-dlp instaloader

基本用法

from trafilatura import fetch_url, extract

# 提取网页正文
doc = fetch_url("https://example.com")
result = extract(doc, output_format="markdown")
print(result)

Playwright 隐身模式

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    )
    page = context.new_page()
    page.goto("https://example.com")
    content = page.content()
    browser.close()

毒丸检测

识别常见毒丸模式(如虚假内容、空页面、错误数据),并返回干净的提取结果。

注意事项

  • 尊重网站的 robots.txt 和服务条款。
  • 设置合理的请求频率,避免给服务器带来压力。
  • 对于付费墙,仅用于合法目的(如学术研究、个人使用)。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能