Scrapy不会打印到json,html或任何其他文件

问题描述

我正在尝试将抓取的元素输出到json文件。当我选择打印页面的整个内容quotestoscrape.com时,它成功完成了此操作。但是,当我选择打印某些元素(例如span标记或p标记)时,所有被抓取的项目都不会显示在json文件中。 这是我的抓取文件,该文件试图从网站quotestoscrape.com抓取span.text元素:

import scrapy

class heyhey(scrapy.Spider):
    name = "samuelbb"
    start_urls = ["http://quotes.toscrape.com"]
    def parse(self,response):
        with open("new.json","wb") as f:
            f.write(response.css("span::text").getall())

我在做什么错了?

解决方法

您的CSS错误

span::text

使用该备忘单以了解更多Link

如果要在json中输出

import scrapy

class heyhey(scrapy.Spider):
    name = "samuelbb"
    start_urls = ["http://quotes.toscrape.com"]
    def parse(self,response):
        name = response.css("span::text").getall()
        yield{
            'name':name
        } 

命令:

scrapy crawl samuelbb -o data.json