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和服务条款。 - 设置合理的请求频率,避免给服务器带来压力。
- 对于付费墙,仅用于合法目的(如学术研究、个人使用)。