SuperAPI AI 工具集

web-scraping

编程与开发

查看项目

更新于 10-15 23:32

技能介绍

用途:提供可靠的网页抓取模式,覆盖静态 HTML 与 JavaScript 渲染页面。静态页面优先用 requests + BeautifulSoup;内容由 JavaScript 渲染时改用 Playwright。

主要能力:从 HTML 页面提取结构化数据、监控内容变化、用无头浏览器处理 SPA 或动态内容。核心实践包括使用 Session 复用连接并设置默认请求头、始终设置超时、配置重试与退避、尊重 robots.txt 与网站服务条款、限速并避开敏感路径、优先使用语义属性或 id 等稳定选择器、保存 HTML 快照便于调试,以及在必要时升级到 Playwright。

使用方式:安装依赖 uv pip install requests beautifulsoup4。静态抓取示例:resp = requests.get("https://example.com", timeout=10);resp.raise_for_status();soup = BeautifulSoup(resp.text, "html.parser");print(soup.title.text)。可用 session.headers.update({"User-Agent": "my-scraper/1.0"}) 设置请求头,用 Retry(total=3, backoff_factor=0.1, status_forcelist=[502, 503, 504]) 配合 HTTPAdapter 实现重试。BeautifulSoup 支持 CSS 选择器,如 soup.select("a[href]")、soup.select_one("#main")。动态页面用 Playwright:with sync_playwright() as p 启动 chromium,page.goto("https://example.com", wait_until="domcontentloaded"),page.wait_for_selector(".product"),再取 page.content()。

适用场景:需要从网页提取数据、监控页面变化,或目标页面依赖 JavaScript 渲染时。

限制:网站服务条款或 robots.txt 禁止抓取时不应使用;存在官方 API 时应优先使用 API。常见问题包括请求被拦截(需设置 User-Agent、增加退避、降低频率)、返回空 HTML(页面为 JS 渲染,应改用 Playwright)、选择器失效(需更新为稳定属性)。