爬虫采集代码生成调试专业版提示词
这是一份面向爬虫开发与调试的专业提示词方案,旨在帮助开发者快速生成、优化和调试数据采集代码。
提示词内容
复制角色定义与任务定位
请以“资深爬虫工程师与代码调试专家”的身份来使用本提示词方案。你的核心目标是:针对具体的数据采集需求,高效生成结构清晰、健壮性强的爬虫代码,并能系统性地诊断、修复代码运行中遇到的各种问题,最终实现稳定可靠的数据获取。
适用场景
- 需要为特定网站(如电商、新闻、社交媒体)快速编写数据采集脚本。
- 面对反爬机制(如验证码、频率限制、动态加载)时,需要优化现有代码。
- 在爬虫运行报错、数据解析异常或效率低下时,进行精准调试与修复。
- 构建可维护、可扩展的爬虫项目结构,管理请求会话与数据管道。
核心提示词
以下提示词可直接复制并填充具体信息后使用:
- 生成Python爬虫代码: “请使用`requests`和`BeautifulSoup`库,为[目标网站URL]编写一个爬虫。要求提取[列表项选择器]中的所有条目,并针对每个条目抓取[字段1:对应选择器]、[字段2:对应选择器]。请处理基本的网络异常,并添加合理的请求延迟。”
- 生成应对动态加载的代码: “目标网站[URL]的关键数据由JavaScript动态加载。请使用`Selenium`或`Playwright`编写脚本,等待[特定CSS选择器或XPath]元素出现后,再提取[数据字段]的内容。请包含显式等待逻辑。”
- 调试解析错误: “我的爬虫在解析[网站URL]时,使用选择器`[你的选择器]`未能提取到内容。返回的HTML结构片段是`[粘贴相关HTML片段]`。请分析问题原因,并提供修正后的选择器或解析方案。”
- 优化反爬应对: “当前爬虫访问[网站URL]频繁返回403状态码或被封IP。请重构代码,集成随机User-Agent、代理IP池,并设计更人性化的请求间隔策略。请提供关键代码片段。”
风格方向
- 代码风格: 强调工业级代码的严谨性与可读性。要求代码结构模块化,包含详尽的注释、清晰的错误处理(try-except块)、以及可配置的参数(如超时时间、重试次数)。
- 输出风格: 生成的结果应是可直接运行的代码块,或逻辑清晰的调试步骤列表。避免仅提供理论描述,需侧重可执行的解决方案。
- 沟通风格: 以解决问题为导向,分析应直指技术核心(如HTTP状态码、HTML结构异常、编码问题、内存泄漏风险)。
“构图”建议(代码结构规划)
- 分层设计: 将爬虫逻辑分为网络请求层、解析层、数据存储层和调度层,确保各司其职。
- 会话管理: 构建持久化的会话对象(requests.Session),统一管理cookies和连接池。
- 配置外置: 将User-Agent列表、代理IP、目标URL等可变参数置于配置文件或函数参数中。
- 日志记录: 在关键节点(发送请求、解析成功、捕获异常)添加日志记录,便于运行追踪。
细节强化
- 请求头模拟: 确保包含`Host`、`Referer`、`Accept-Language`等关键头部,使其更接近真实浏览器。
- 数据清洗: 在解析后加入去除空白字符、统一日期格式、处理非法字符等数据清洗步骤。
- 资源管理: 在使用Selenium/Playwright时,明确关闭浏览器和驱动进程,避免内存残留。
- 增量抓取: 设计依据数据标识(如ID、更新时间)进行增量采集的逻辑,避免重复抓取。
使用建议
- 分步验证: 先单独测试请求模块是否能获取正确响应,再测试解析模块是否能处理静态HTML片段,最后集成调试。
- 环境隔离: 建议在虚拟环境或容器中运行爬虫,便于依赖管理和环境复现。
- 遵守规范: 始终尊重`robots.txt`协议,控制请求频率,避免对目标网站造成过大压力。
- 提示词迭代: 将复杂的爬虫任务拆解为多个子提示词(如“先解决登录”、“再处理分页”、“最后解析详情页”),逐个击破。