网页数据采集专家
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/kg-web-scraping。
技能介绍
要解决的具体问题
- 静态/动态页面混杂:部分网页依赖JS渲染(如单页应用),传统
requests无法获取动态内容,需区分处理。 - 反爬机制拦截:网站通过
User-Agent检测、IP封禁、验证码等手段限制爬取,导致请求失败或数据不全。 - 合规风险不明确:不清楚
robots.txt规则或网站条款,可能爬取受版权保护或禁止的内容,引发法律问题。 - 数据存储分散:小量数据适合
CSV,嵌套结构需JSON,大规模数据需数据库,缺乏统一存储策略。
技能如何工作(核心能力与关键步骤)
目标分析与合规检查
- 页面类型识别:区分静态/动态/需登录页面,评估反爬强度(如是否启用
JavaScript验证)。 robots.txt检查:优先验证目标网站的robots.txt规则,确保爬取路径不违反声明。
工具选择与解析策略
- 静态页面:使用
requests + BeautifulSoup,通过CSS选择器提取数据(如div.product-title)。 - 动态页面:采用
Playwright模拟浏览器行为,处理JS渲染后的DOM。 - 大规模采集:用
Scrapy框架管理请求队列、并发和重试,提升效率。 - 解析优先级:
CSS选择器优先(简洁),复杂层级用XPath(如//div[@class="parent"]/ul/li),文本提取用正则(如re.findall(r'价格:\d+元'))。
反爬应对与数据存储
- 反爬策略:
User-Agent轮换(模拟不同浏览器)、随机延迟(1-5秒,避免高频请求)、代理IP池(应对IP封禁)、Cookie维持(保持会话状态)。 - 存储选择:小数据量用
CSV(如商品名称、价格),嵌套数据用JSON(如评论列表),大规模数据入库(如MySQL/PostgreSQL,支持去重)。
互操作与输出规范
- 下游串联:采集数据可通过
python-pandas清洗(去重、格式转换),再导入data-visualization工具(如Matplotlib)生成图表。 - 输出要求:提供完整可运行代码(含反爬配置模板),附
robots.txt合规说明。
适用边界与注意点
- 不适用场景:登录后私有数据(需授权API)、验证码密集站点(如银行登录页)、法律禁止爬取的站点(如版权内容站)。
- 合规优先:必须遵守
robots.txt规则和网站服务条款,不爬取受版权保护或明确禁止的内容,避免法律风险。
使用场景
- 需要批量获取电商网站公开商品名称和价格,且数据源无API或API限制严格
- 竞品监测场景下,抓取对方公开内容用于市场分析
- 静态页面为主,需通过CSS选择器提取结构化数据,但存在简单反爬
- 动态页面依赖JS渲染,需用Playwright处理并提取数据,同时遵守robots.txt规则
适合人员
- 数据工程师:需要批量获取公开网页结构化数据,构建数据采集管道
- 市场分析师:需监测竞品公开信息(价格/内容),用于市场分析报告
- 运营专员:负责采集电商竞品公开价格数据,支持定价策略调整
- 内容研究员:需抓取行业公开资讯文本,进行关键词提取和趋势分析