You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scrapy使用yield导出JSON文件为空,求问题排查解决方法

问题原因及解决方案

你的代码存在两个关键错误,导致无法生成有效JSON文件:

1. parse 方法缩进错误,未作为类成员方法

在你的第一个代码中,parse 函数定义在 BooksSpider 类的外部,Scrapy无法识别该方法作为爬虫的解析入口,因此不会执行任何数据抓取逻辑。

2. 起始URL变量名拼写错误:star_urls → start_urls

Scrapy爬虫类中指定起始URL的固定变量名是start_urls,你拼写为star_urls,导致爬虫无法读取目标访问地址。

修正后的完整代码

import scrapy

class BooksSpider(scrapy.Spider):
    name = "books"
    start_urls = [ 
        "http://books.toscrape.com"
    ]

    def parse(self, response):
        titles = response.css("article.product_pod h3 a::attr(title)").getall()
        for title in titles:
            yield {"title": title}

验证说明

  • 修正缩进后,parse 成为类的成员方法,Scrapy会在请求完成后自动调用它处理响应
  • 修正start_urls拼写后,爬虫能正确加载目标URL
  • 再次执行命令 scrapy crawl books -o books.json,即可得到包含书籍标题的JSON文件

内容的提问来源于stack exchange,提问作者Alexandre Nakicen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:35:26