📦 Web Scraper — 网页爬虫
v1.0.0用于数据提取、分页处理、反阻塞技术的Python网页抓取工具包,支持对JavaScript重载网站的Selenium,并输出结构化数据(JSON...)
运行时依赖
安装命令
点击复制技能文档
Web Scraper 概述 Python 网页抓取工具包,用于数据提取、分页处理、反阻塞技术、Selenium用于JS重的网站,以及结构化输出。涵盖了合乎道德的抓取实践。 使用场景:当Codex需要从网站提取数据、处理分页、绕过简单的反bot措施或抓取JavaScript渲染的内容时。
快速开始 前置条件 pip install requests beautifulsoup4 lxml # 对于JS重的网站: pip install selenium webdriver-manager
基本抓取 # 从一个页面提取所有链接 python3 scripts/scrape-basic.py https://example.com \ --selector "a[href]" --attr href --output links.json --pretty # 从文章中提取文本 python3 scripts/scrape-basic.py https://news.ycombinator.com \ --selector ".titleline a" --output hn.txt
分页抓取 # URL参数分页(?page=1,?page=2) python3 scripts/scrape-pagination.py https://books.toscrape.com/catalogue/page-1.html \ --selector "h3 a" --attr title --max-pages 5 # 下一链接检测 python3 scripts/scrape-pagination.py https://quotes.toscrape.com \ --selector "span.text" --max-pages 3
JavaScript渲染页面(Selenium) python3 scripts/scrape-with-selenium.py https://example.com \ --selector ".dynamic-content" --wait 5 --output data.json
常见场景 反阻塞技术 旋转User-Agents并添加延迟以避免429/阻塞: import random import time headers = { "User-Agent": random.choice(USER_AGENTS), "Accept": "text/html,application/xhtml+xml", "Accept-Language": "en-US,en;q=0.9", "Referer": "https://www.google.com/", } time.sleep(random.uniform(1.0, 3.0)) # 随机延迟 对于激进的阻塞:设置cookies,使用会话或添加代理。
处理JavaScript网站无需Selenium 首先检查:数据是否嵌入在页面源码中? import re, json # 在