📌 场景描述:每次写爬虫最烦的不是解析逻辑,而是那些防爬机制(IP限制、验证码、JS加密)。传统写法要死磕
"requests"、
"selenium"和反爬对抗,现在直接用Vibe Coding让AI搞定这套“防御系统”。
💡 Prompt原文:
帮我写一个Python爬虫,目标是豆瓣电影Top250(https://movie.douban.com/top250)。
核心需求:
- 用
"requests"+
"BeautifulSoup",不要用selenium(太重了)。
- 必须模拟真人浏览器:带随机User-Agent、Referer,自动处理Cookie。
- 反反爬策略:每爬一页随机延时1-3秒,遇到429/403自动重试3次。
- 数据清洗:提取排名、电影名、评分、引言,存成
"douban_top250.csv"。
- 异常处理:网络超时或解析失败时跳过,不要崩。
Harness约束:
- 代码里不要写死固定的User-Agent列表,用
"fake_useragent"库动态生成。
- 用
"logging"记录爬取进度和错误,不要只print。
- 如果豆瓣返回“检测到异常请求”,直接休眠10秒再重试。
🔍 技巧拆解:
1. Vibe Coding精髓:不说“怎么爬”,只说“别被ban”。直接提“反反爬”、“模拟真人”、“自动重试”,让AI把防御逻辑封装好,你只管收数据。
2. 痛点爆破:传统写爬虫要查header格式、重试机制代码,现在直接一句“遇到429重试3次”,AI帮你填坑。
3. Harness Engineering:通过约束(如“不要写死User-Agent”、“必须用logging”),给AI套上缰绳,防止它生成简陋或不安全的代码,确保产出是生产可用的。
🎯 效果预期:直接生成一个开箱即用的爬虫脚本,运行后自动处理反爬逻辑,你只需要喝着咖啡等
"csv"文件生成,完全不用碰HTTP协议细节。
⚡ 进阶变体:
- 动态代理池:加一句“如果连续3次被封IP,自动切换代理池(从
"proxy_list.txt"读取)”,让AI帮你写代理轮询逻辑。
- API化:加一句“把爬虫封装成Flask API,
"GET /movies"返回JSON”,直接变微服务。
2026.05.12