scrapy基于终端的持续化存储的, 有些注意事项

基于终端的持续化存储的使用

使用命令:

scrapy crawl spiderName -o filePath

好处: 简洁高效便捷
基于终端的持续化要只能对 parse 方法返回值进行存储.
而且存储的文件, 必须是 json , jsonlines, jl, csv, xml , marshal, pickle 格式的文件.

注意事项

而且 parse 方法返回的值, 必须是字典类型或者列表嵌套字典, 也就是必须返回 json , 如果是 普通的列表类型或者字符串类型,都会报错

import scrapy


class PornhubSpider(scrapy.Spider):
    name = 'pornhub'
    # allowed_domains = ['xxx.com']
    start_urls = ['https://www.csdn.net/?spm=1001.2014.3001.4476']

    def parse(self, response):
        li_list = response.xpath('//ul[@class="nav_center_wrap"]/li')
        content = list()
        dict_data = dict()
        for i in li_list:
            # 把 selector 中的 dataS属性提取
            ele = i.xpath('./a/text()').extract()
            # print(ele)
            # 把列表里的元素转成字符串
            # ele = "".join(ele)
            # print(ele)
            content.append(ele)
        # print(content)
        dict_data["课程"] = content
        # return content # 返回content 会报错
        return dict_data