Scrapy开发需掌握核心命令:scrapy startproject创建项目,scrapy genspider生成爬虫,scrapy list查看爬虫,scrapy shell调试响应,scrapy crawl运行爬虫,scrapy fetch独立抓取,scrapy runspider运行单文件爬虫,scrapy view可视化页面。

快速上手Scrapy开发,必须掌握命令行中哪些命令能创建项目、调试响应、运行爬虫、检查代码——这些操作不靠IDE点击,全靠终端输入准确指令完成。
创建和进入Scrapy项目
第一步永远是建项目:在任意空目录下执行 scrapy startproject myspider,这会生成 myspider/ 文件夹和 scrapy.cfg 配置文件。注意:项目名必须是合法的 Python 包名,不能含短横线(-)或空格,否则后续 import 会报错。
建好后用 cd myspider 进入项目根目录——所有项目命令(如 crawl、genspider)都要求在此目录或其子目录下运行,否则提示 “no active project”。
在项目内快速生成爬虫文件
方法一:最常用的是 scrapy genspider example quotes.toscrape.com。它会自动在 spiders/ 目录下创建 example.py,并预填 allowed_domains = ['quotes.toscrape.com'] 和 start_urls = ['http://quotes.toscrape.com/']。
方法二:指定模板生成更复杂的爬虫,比如 scrapy genspider -t crawl douban movie.douban.com,这会基于 crawl 模板生成支持 follow 链接的爬虫类,适合全站抓取。
【domain 必须只写域名,不能带 http:// 或 https://】 否则 start_urls 里会拼出 http://http://xxx 的错误地址,导致 DNSLookupError。
启动与调试爬虫的三种方式
第一步:查看当前项目有哪些爬虫可用 → 执行 scrapy list,输出每行一个爬虫 name,比如 example、douban。
第二步:本地调试响应结构 → 运行 scrapy shell "https://quotes.toscrape.com",进入交互环境后可直接用 response.css('span.text::text').getall() 测试选择器,无需启动完整爬虫。
第三步:正式运行爬虫 → 执行 scrapy crawl example -o result.json,-o 参数会把 yield 的 item 自动保存为 JSON;若不想看刷屏日志,加 --nolog 即可。
不依赖项目的独立爬取操作
fetch 命令能模拟爬虫下载行为:在任意目录下运行 scrapy fetch --nolog --headers https://httpbin.org/headers,它会输出响应头和响应体,且完全复用 Scrapy 下载器中间件(如 User-Agent、重试逻辑)。
runspider 命令跳过项目约束:写一个独立的 spider.py 文件,里面定义 class MySpider(scrapy.Spider),然后执行 scrapy runspider spider.py —— 这种方式适合临时脚本或教学演示,但无法使用 pipelines、middlewares 等项目级配置。
view 命令用于可视化验证:运行 scrapy view https://example.com,Scrapy 会用默认浏览器打开该 URL 渲染后的页面,效果等同于爬虫拿到的 response.body,对 JS 渲染页面无效。


















