
一、为什么有了 Scrapy,还需要 Playwright?使用 Scrapy 写过爬虫的人,大多遇到过这样的情况:请求已经返回 200,代码也没有报错,但页面里最重要的商品价格、文章列表、评论内容却一个都没有。打开浏览器一看,数据明明就在页面上。问题通常出在 JavaScript 渲染。不少现代网站在服务器返回 HTML 时,只提供一个页面骨架。真正的数据需要浏览器执行 JavaScript,再通过接口请求、DOM 更新等方式显示出来。Scrapy 默认使用 HTTP 下载器获取响应,不会像真正的浏览器那样执行页面脚本,因此直接解析原始 HTML,往往只能得到一份不完整的页面。这时,Playwright 就派上用场了。Playwright 可以控制 Chromium、Firefox 和 WebKit 等浏览器,执行 JavaScript、等待元素出现、点击按钮、滚动页面,也可以读取浏览器最终生成的 DOM。但这里还有一个容易被忽略的问题:Playwright 能打开页面,不代表它适合独立承担整个爬虫系统。URL 调度、请求去重、失败重试、数据清洗、持久化、运行统计,这些工作仍然需要一套完整的抓取流程来支撑。Scrapy 在这些方面已经提供了成熟的组件。所以,两者真正合理的分工是:Scrapy 负责抓取任务的组织、调度、重试、解析流程和数据管道。Playwright 负责需要浏览器执行环境的页面渲染与交互。对于无需执行 JavaSc