scrapy 直接输出json文件

直接在py文件中写下如下代码:

import scrapy
import re
import requests
from lxml import etree


class QuotesSpider(scrapy.Spider):
    name = "list"

    def start_requests(self):
        urls = [
            # 'https://so.gushiwen.cn/gushi/aiguo.aspx',     # 爱国
            # 'https://so.gushiwen.cn/gushi/libie.aspx'      # 离别
            # 'https://so.gushiwen.cn/gushi/songbie.aspx'    # 送别
            # 'https://so.gushiwen.cn/gushi/sixiang.aspx'    # 思乡
            # 'https://so.gushiwen.cn/gushi/sinian.aspx'     # 思念
            # 'https://so.gushiwen.cn/gushi/aiqing.aspx'     # 爱情
            # 'https://so.gushiwen.cn/gushi/lizhi.aspx'      # 励志
            # 'https://so.gushiwen.cn/gushi/zheli.aspx'      # 哲理
            # 'https://so.gushiwen.cn/gushi/guiyuan.aspx'    # 闺怨
            # 'https://so.gushiwen.cn/gushi/daowang.aspx'    # 悼亡
            # 'https://so.gushiwen.cn/gushi/xieren.aspx'     # 写人
            # 'https://so.gushiwen.cn/gushi/youqing.aspx'    # 友情
            # 'https://so.gushiwen.cn/gushi/zhanzheng.aspx'  # 战争
            # 'https://so.gushiwen.cn/gushi/dushu.aspx'      # 读书
            # 'https://so.gushiwen.cn/gushi/xishi.aspx'      # 惜时
            # 'https://so.gushiwen.cn/gushi/youguo.aspx'     # 忧国
            # 'https://so.gushiwen.cn/gushi/wanyue.aspx'     # 婉约
            # 'https://so.gushiwen.cn/gushi/haofang.aspx'    # 豪放
            # 'https://so.gushiwen.cn/gushi/shuqing.aspx'    # 抒情
            # 'https://so.gushiwen.cn/gushi/huaigu.aspx'     # 怀古
            # 'https://so.gushiwen.cn/gushi/chongyang.aspx'  # 重阳
            # 'https://so.gushiwen.cn/gushi/zhongqiu.aspx'   # 中秋
            # 'https://so.gushiwen.cn/gushi/qixi.aspx'       # 七夕
            # 'https://so.gushiwen.cn/gushi/duanwu.aspx'     # 端午
            # 'https://so.gushiwen.cn/gushi/qingming.aspx'   # 清明
            # 'https://so.gushiwen.cn/gushi/hanshi.aspx'     # 寒食
            # 'https://so.gushiwen.cn/gushi/yuanxiao.aspx'   # 元宵
            # 'https://so.gushiwen.cn/gushi/chunjie.aspx'    # 春节
            # 'https://so.gushiwen.cn/gushi/biansai.aspx'    # 边塞
            # 'https://so.gushiwen.cn/gushi/tianyuan.aspx'   # 田园
            # 'https://so.gushiwen.cn/gushi/ma.aspx'         # 写马
            # 'https://so.gushiwen.cn/gushi/niao.aspx'       # 写鸟
            # 'https://so.gushiwen.cn/gushi/changjiang.aspx' # 长江
            # 'https://so.gushiwen.cn/gushi/shui.aspx'       # 写水
            # 'https://so.gushiwen.cn/gushi/shan.aspx'       # 写山
            # 'https://so.gushiwen.cn/gushi/yueliang.aspx'   # 月亮
            # 'https://so.gushiwen.cn/gushi/liushu.aspx'     # 柳树
            # 'https://so.gushiwen.cn/gushi/juhua.aspx'      # 菊花
            # 'https://so.gushiwen.cn/gushi/hehua.aspx'      # 荷花
            # 'https://so.gushiwen.cn/gushi/meihua.aspx'     # 梅花
            # 'https://so.gushiwen.cn/gushi/feng.aspx'       # 写风
            # 'https://so.gushiwen.cn/gushi/feng.aspx'       # 写雪
            # 'https://so.gushiwen.cn/gushi/yu.aspx'         # 写雨
            # 'https://so.gushiwen.cn/gushi/chuntian.aspx'   # 春天
            # 'https://so.gushiwen.cn/gushi/xiatian.aspx'    # 夏天
            # 'https://so.gushiwen.cn/gushi/qiutian.aspx'    # 秋天
            'https://so.gushiwen.cn/gushi/dongtian.aspx'   # 冬天
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        cipai_list = ['八归', '九日', '大有', '个侬', '子夜', '无怨', '天香', '木笡', '五拍', '六丑', '比梅', '月慢', '古记', '东仙', '乐正', '乐世',
                      '长春', '西子', '西河', '合欢', '红情', '出塞', '花犯', '步月', '杜宇', '河传', '佳色', '尾犯', '鸣梭', '侧犯', '录调', '征招',
                      '南浦', '秋水', '胜常', '宣情', '垂阳', '相月', '品令', '胡州', '夏州', '春晴', '春弄', '绿腰', '哨遍', '倾杯', '消息', '离鸾',
                      '留家', '薄幸', '黄金', '排歌', '望梅', '减兰', '渔父', '戚氏', '梁令', '寒姑', '琼台', '凯歌', '韵令', '塞姑', '琴调', '禁烟',
                      '疏影', '歌令', '瑶花', '酹月', '暗香', '横云', '簇水', '露华', '入塞', '别怨', '多丽', '丁儿', '八塞', '大椿', '无闷', '不见',
                      '白萱', '犯花', '乐令', '西湖', '寻梅', '防露', '阳春', '招潮', '孤鸾', '秋霁', '眉妩', '拜星', '春游', '绿意', '索酒', '调笑',
                      '探春', '情词', '湘月', '催雪', '赚煞', '镇西', '踏月', '鞮红', '芳草', '竹枝', '三台', '导引', '白雪', '解红', '西施', '大酺',
                      '六州', '国香', '一叶叶', '一叶乐', '一叶落', '一江风', '一丝风', '一过金', '一枝花', '一点春', '一枝春', '一年春', '一痕沙', '一落索',
                      '一捻红', '一斛珠', '一翦梅', '一寸金', '一半子', '一梦金', '一样花', '一落春', '一络索', '一斛球', '一七令', '一剪梅', '一丛花', '一萼红',
                      '二色莲', '卜算子', '卜玉郎', '人南渡', '七娘子', '八宝妆', '九能归', '九回肠', '十拍子', '十样花', '十爱词', '十二红', '十二郎', '二十时',
                      '丁香结', '八拍蛮', '二郎神', '七娘仔', '八音谐', '九张帆', '十二时', '十八香', '人月圆', '八六子', '十月桃', '三台令', '三学士', '三部乐',
                      '三株媚', '上升花', '上江虹', '上马娇', '上南平', '上平西', '上小楼', '上束马', '上林春', '上阳春', '下手迟', '大江西', '大圣乐', '小圣乐',
                      '小冲山', '小阑干', '小桃红', '小庭花', '小梅花', '小秦王', '小梁州', '千秋节', '千年调', '千春词', '万年枝', '万年斯', '山外云', '山坡羊',
                      '山渐青', '山亭燕', '于中好', '山亭柳', '广寒枝', '子夜歌', '川拨棹', '干荷叶', '三登乐', '上行杯', '上西平', '上平南', '上西楼', '下水船',
                      '大江乘', '小桃花', '小镇西', '千秋岁', '万年秋', '万年春', '万里春', '山桃红', '山鬼谣', '广寒秋', '女冠子', '于飞乐', '三字令', '山花子',
                      '小重山', '三奠子', '万年欢', '天仙子', '天下乐', '天香引', '天净沙', '月儿高', '月中行', '月中桂', '月当窗', '月边娇', '月城春', '月华清',
                      '风中柳', '风光好', '风马儿', '风流子', '风蝶令', '云雾敛', '云松令', '水仙子', '水龙吟', '水漫声', '水调歌', '水晶帘', '凤来朝', '凤棲梧',
                      '凤孤飞', '凤楼吟', '凤御杯', '凤凰间', '双双燕', '双燕儿', '双头莲', '双带子', '双红豆', '双劝酒', '双蕖怨', '双鸿鹑', '斗百花', '斗鸡回',
                      '斗婵娟', '无梦令', '无俗念', '无漏子', '太平时', '太平令', '不水船', '不是路', '不怕醉', '六么序', '六么令', '五更转', '丰年瑞', '中央乐',
                      '王孙信', '木兰花', '内家娇', '丑奴儿', '飞来峰', '比目鱼', '劝金船', '厅前柳', '凤池吟', '双声子', '巴渝辞', '元和令', '元会曲', '天门谣',
                      '月下笛', '月当听', '风归云', '风敲竹', '云鬓乱', '水云游', '凤仙引', '凤求凰', '凤时春', '凤萧吟', '双飞燕', '双瑞莲', '双韵子', '双荷叶',
                      '斗百草', '斗鹌鹑', '无锡景', '六六峰', '少年心', '五供养', '丰乐楼', '开元乐', '见龙门', '丹凤吟', '文风盛', '引驾行', '乌夜啼', '月宫春',
                      '太常引', '少年游', '风入松', '凤楼春', '升平乐', '云仙引', '凤归云', '双雁儿', '月当厅', '玉山颓', '玉京谣', '玉京箫', '玉烛新', '玉团儿',
                      '玉交枝', '玉莲花', '玉堂春', '玉龙瑶', '玉壶冰', '玉阑干', '玉美蓉', '玉抱肚', '玉簟秋', '忆江月', '忆汉月', '忆萝月', '忆人人', '忆故人',
                      '忆君王', '忆帝京', '忆仙姿', '忆多娇', '忆吹箫', '忆闷令', '忆柳曲', '忆秦娥', '忆真妃', '归去来', '归去难', '归去曲', '归平遥', '归国遥',
                      '归自谣', '归朝欢', '四字令', '四时好', '四园竹', '四代好', '四和香', '四块玉', '四犯令', '四换头', '甘草子', '甘州子', '长寿乐', '长亭怨',
                      '石州行', '石州引', '石湖仙', '石榴花', '白萱歌', '白苹香', '白鹤子', '东平引', '东坡引', '东原乐', '东风寒', '古阳关', '古梅曲', '长生乐',
                      '忆旧游', '玉山枕', '古调笑', '古竹马', '永遇乐', '台城路', '台城游', '占春魁', '占梅芳', '龙吟曲', '圣乐王', '圣无忧', '乐逊曲', '扑粉蝶',
                      '扑蝴蝶', '加侍香', '叨叨令', '生查子', '市桥柳', '瓜茉莉', '北杨柳', '击裙腰', '犯胡兵', '付金钗', '对玉环', '鸟鸣涧', '玉人歌', '玉京秋',
                      '玉竹斩', '玉连环', '玉楼春', '玉梅令', '玉漏迟', '忆岁月', '忆少年', '忆余杭', '忆章台', '忆瑶姬', '归巴乐', '归国谣', '归塞北', '四边静',
                      '四和春', '四季花', '甘州令', '甘州歌', '长安女', '长命女', '长桥月', '石州慢', '白雪词', '白鸽子', '东阳歌', '东湖月', '古倾杯', '永原乐',
                      '龙山会', '乐中悲', '且坐令', '兰陵王', '丝罗袄', '冉冉云', '玉簟凉', '归字谣', '占春芳', '忆江南', '甘州遍', '甘州曲', '忆王孙', '汉宫春',
                      '长相思', '玉蝴蝶', '四槛花', '江神子', '江南忆', '江南春', '江南柳', '江儿水', '江如练', '江亭怨', '西平曲', '西平乐', '西湖月', '西湖边',
                      '西湖路', '西湖春', '西施锦', '西地锦', '西意令', '西梦令', '西楼子', '西笑吟', '西溪子', '庆青春', '庆宫春', '庆春岁', '庆春泽', '庆同天',
                      '庆东原', '曲入门', '曲入冥', '曲千秋', '曲游春', '红娘子', '红梅引', '红楼引', '红窗迥', '红窗睡', '好花时', '好姐姐', '好离乡', '竹枝子',
                      '竹香子', '竹马车', '竹枝词', '竹牌儿', '百字令', '百字字', '百尺楼', '百宜娇', '扫地花', '扫地舞', '扫花游', '扫市舞', '阳关引', '阳春曲',
                      '阳台曲', '阳台梦', '过江龙', '过涧歇', '行杳子', '行不得', '行路难', '早梅芳', '早春怨', '伤春怨', '伤情怨', '安阳好', '安庆摸', '回婆乐',
                      '回心院', '华胥引', '华荷媚', '如梦令', '伊川令', '后庭花', '后庭宴', '乔木查', '字字锦', '师师令', '夺锦标', '买陂塘', '迈陂塘', '向天盏',
                      '似娘儿', '关河令', '庄椿岁', '阵破乐', '字字双', '如鱼水', '扬州慢', '西子妆', '江南好', '江月令', '江梅引', '西江月', '江城子', '西意曲',
                      '西河慢', '庆长春', '庆春深', '庆宣和', '曲玉管', '红娘仔', '红窗听', '红窗影', '好事近', '好观音', '竹马儿', '百字谣', '百媚娘', '扫地游',
                      '阳台路', '过龙门', '早梅香', '伤春曲', '安公子', '回波词', '如意令', '伊州令', '乔牌儿', '羽仙歌', '吊严陵', '有有令', '向湖边', '齐天乐',
                      '雪芳草', '寻瑶草', '庆清朝', '好时光', '华清引', '回波乐', '好女儿', '阮郎归', '庆春时', '阳关曲', '行香子', '纥那曲', '庆千秋', '庆春宫',
                      '过秦楼', '合欢带', '庆金枝', '红罗袄', '花心动', '花非花', '花自落', '花间意', '花深深', '花溪碧', '折红梅', '折花令', '折桂令', '折柳枝',
                      '折杨柳', '寿星明', '寿桃春', '步花间', '步虚声', '步步娇', '步蟾宫', '应天长', '应长天', '应景乐', '杏花风', '杏梁燕', '沙塞子', '沙碛子',
                      '苏台新', '苏幕遮', '芙蓉月', '芙蓉曲', '胡音子', '陇头月', '快活三', '快活年', '闲闲令', '纱窗恨', '泠青沼', '泛兰舟', '伴云来', '赤壁词',
                      '迎新春', '迎春来', '还冠子', '君不悟', '抛绣球', '抛球乐', '村意远', '秀碧宵', '佛霓裳', '苍梧谣', '芭蕉雨', '芳心苦', '饮马歌', '诉衷情',
                      '灼灼花', '豆叶黄', '更漏子', '忍泪吟', '沐皇恩', '告春来', '怀旧游', '弄花雨', '吹柳紊', '连枝理', '远朝归', '赤枣子', '芰荷香', '花相容',
                      '花前饮', '折红英', '折丹桂', '寿南山', '步虚词', '应天良', '杏花天', '沙头雨', '苏武慢', '胡山青', '陇头泉', '闲中好', '纱窗怨', '伴登临',
                      '声块令', '还京乐', '君来路', '杜韦娘', '秀厢儿', '何满子', '孝白歌', '陂搪柳', '秃厮儿', '阿那曲', '别仙子', '两同心', '这横山', '鸡叫子',
                      '陂堂柳', '寿楼春', '极相思', '寿山曲', '杨柳枝', '声声慢', '沁园春', '抛毬乐', '杏园春', '泛青苕', '系裙腰', '金字经', '金明池', '金欢带',
                      '金浮图', '金蕉叶', '金凤钩', '金凤调', '金缕曲', '金缕歌', '夜飞乐', '夜飞鹊', '夜来花', '夜如年', '夜游宫', '夜游朝', '青门引', '青杏儿',
                      '青歌儿', '青云怨', '青玉案', '采綵令', '采绿令', '采莲子', '画屏春', '画楼空', '画锦堂', '画娥眉', '念良游', '念香衾', '定风波', '定风流',
                      '定西番', '雨淋铃', '雨霖铃', '国门东', '试罗香', '河渎神', '明月引', '罗唝曲', '罗敷媚', '转应曲', '陌上花', '陌上郎', '卷春空', '拨不断',
                      '拨棹子', '驻云飞', '佳人醉', '使牛子', '拍球场', '拙鲁连', '杵声齐', '怕春归', '恒春令', '乳燕飞', '宝钗分', '钓船笛', '孤雁儿', '鱼儿赚',
                      '苗儿秀', '话桐乡', '沽美酒', '贫也乐', '油葫芦', '轮台子', '学士吟', '宝鼎现', '武陵春', '金明春', '金盏子', '金菊香', '金缕词', '夜半乐',
                      '夜行船', '夜捣衣', '青哥儿', '青衫湿', '采莲令', '采明珠', '画招郎', '念奴娇', '念离群', '雨中花', '国香慢', '试周郎', '明月斜', '武林春',
                      '转应词', '卷珠帘', '征部乐', '怜薄命', '钗头凤', '咏捣练', '卖花声', '卓牌子', '昆明池', '於中好', '驻马听', '采桑子', '画堂春', '金错刀',
                      '拂霓裳', '凭阑人', '夜合花', '松梢月', '河满子', '春去也', '春云怨', '春归怨', '春声满', '春声啐', '春草碧', '春衫泪', '春宵曲', '春晓曲',
                      '春莺转', '秋千索', '秋月夜', '秋波媚', '秋思耗', '秋思夜', '秋景丽', '秋蕊香', '柳长春', '柳色黄', '柳初新', '柳含烟', '柳梢春', '柳腰轻',
                      '怨王孙', '怨春归', '怨春闺', '怨啼鹃', '南乡子', '南柯子', '南平引', '南楼令', '贺新郎', '贺新凉', '贺熙朝', '洞中仙', '洞仙歌', '洞渎神',
                      '点绛唇', '点樱桃', '思远人', '思佳客', '相思令', '相见欢', '恨春时', '垂丝钓', '垂碧柳', '迷仙引', '拜新月', '拜星月', '误佳期', '拾菜娘',
                      '拾翠羽', '剑气近', '剑器近', '绕地游', '送将归', '绛桃春', '绛黄龙', '洛妃怨', '挂金索', '祝英台', '昭君怨', '茭荷香', '珍珠令', '玲珑王',
                      '麻郎儿', '映山红', '胡捣练', '络丝娘', '重叠金', '哪吒令', '荆州亭', '挥春墁', '茶瓶儿', '将进酒', '炼丹砂', '亭前柳', '胜胜慢', '城头月',
                      '钟离春', '思帝乡', '送征衣', '春心荡', '春色满', '春初临', '春团圆', '春丽景', '秋夜雨', '秋宵吟', '柳叶儿', '柳色新', '柳枝秋', '怨春风',
                      '怨春郎', '南浦月', '贺圣朝', '洞仙词', '点牌儿', '思越人', '相思子', '恨春宵', '垂杨柳', '迷神引', '选冠子', '选官子', '独脚令', '独倚楼',
                      '绕佛乐', '绛都春', '洛阳春', '挂庭秋', '美人春', '带马行', '帝春台', '耍孩儿', '香山会', '眉峰碧', '相见欢', '怨三三', '南歌子', '柘枝引',
                      '柳梢青', '恨来迟', '临江仙', '看花回', '昼锦堂', '恨春迟', '误桃源', '玲珑玉', '相思引', '秋兰香', '秋风清', '胜胜令', '荔子丹', '春光好',
                      '怨回纥', '离亭怨', '离亭燕', '离庭宴', '离香令', '离苦海', '离翠袖', '宴桃源', '宴西园', '宴琼林', '宴瑶池', '桂枝秋', '桂花明', '破阵乐',
                      '破齐阵', '荷叶杯', '荷干杯', '壶山好', '壶中天', '浣溪行', '绣带子', '绣带儿', '绣停针', '夏孤临', '桃花水', '海棠花', '海棠春', '凄凉调',
                      '恋情深', '留春令', '留客住', '特地新', '鬼三台', '莫思归', '悟黄梁', '淅江静', '凌波曲', '凉州令', '调笑令', '粉蝶儿', '酒泉子', '阅金经',
                      '涧底松', '真珠帘', '啄木儿', '剔银灯', '透碧宵', '鸳鸯梦', '薄命女', '家山好', '桂殿秋', '浪淘沙', '离亭宴', '离别难', '宴清都', '宴山亭',
                      '桂枝香', '桂华明', '破字令', '荷花媚', '壶天晓', '浣沙溪', '夏初临', '桃花落', '凄凉犯', '偶相逢', '倒垂柳', '逍遥乐', '倘秀才', '鸭头绿',
                      '唤春愁', '倦寻芳', '爱孤云', '恋香衾', '高阳台', '珠帘卷', '捣练子', '唐多令', '破阵子', '夏云峰', '恋绣衾', '透碧霄', '浣溪沙', '惜分飞',
                      '惜红衣', '惜分钗', '惜余欢', '惜余春', '惜春容', '惜春郎', '惜春姿', '惜花春', '惜琼花', '惜奴娇', '惜寒梅', '望江东', '望江怨', '望江梅',
                      '望仙人', '望湘人', '望梅花', '望梅潮', '望春回', '望书归', '望秦川', '望蓬莱', '梦江南', '梦仙游', '梦芙蓉', '梦魂香', '梦横塘', '探道子',
                      '探芳讯', '探芳新', '探春令', '探春慢', '清平调', '清江行', '情江曲', '清商怨', '清波引', '梅花引', '梅月圆', '梅弄影', '梅已谢', '剪征袍',
                      '剪湘云', '黄莺儿', '渔家傲', '渔家乐', '渔父乐', '梧桐儿', '梧桐影', '梧桐树', '雪狮儿', '混江龙', '混罗衣', '情天久', '情久长', '脱布衫',
                      '掷半浣', '琐窗寒', '琐寒窗', '绮秦怨', '菊花天', '菊花新', '深院静', '绿头鸭', '谒金门', '萧萧雨', '梁州令', '婆罗门', '淮甸春', '得胜令',
                      '甜水令', '麻郎儿', '祭天神', '尉迟杯', '寄生草', '第一花', '淡黄柳', '添添春', '梦扬州', '惜双双', '惜余香', '惜春纤', '惜黄花', '惜芳菲',
                      '望江南', '望湖人', '望仙楼', '望夫歌', '梦江口', '梦行云', '梦还凉', '探花慢', '探芳信', '清平乐', '清和风', '梅花句', '梅和柳', '剪牡丹',
                      '剪朝霞', '黄金缕', '黄鹤引', '梧叶儿', '雪绿蓑', '彩凤飞', '脱布巾', '掷金钱', '绮罗香', '深院月', '萍宫春', '章台柳', '掉角儿', '维扬好',
                      '控春令', '望海潮', '啰唝曲', '望仙门', '眼儿媚', '惜春令', '渔歌子', '望远行', '接贤宾', '彩云归', '黄钟乐', '欸乃曲', '雪花飞', '望云间',
                      '渔父引', '绮寮怨', '雪梅香', '喜春来', '喜迁莺', '喜连声', '喜常新', '谢秋娱', '谢秋娘', '朝天子', '朝天懒', '锁窗寒', '锁寒窗', '寒食词',
                      '寒松叹', '腊梅花', '腊梅香', '腊前梅', '落花时', '越江吟', '越溪寒', '御带花', '普天乐', '普贤歌', '赏花时', '最高楼', '悲中乐', '悲哉行',
                      '番抢子', '聒龙谣', '溅罗裙', '渭城曲', '渡江云', '雁后归', '黑漆弩', '缕金金', '喝大令', '葛浦曲', '敬天花', '湘妃怨', '替人愁', '隔帘听',
                      '款残红', '崐绣毯', '搅琵琶', '滞人娇', '蕊珠间', '紫骝马', '散天花', '紫玉箫', '谢池春', '谢新恩', '朝天乐', '锁阳台', '寒连新', '散余霞',
                      '御街行', '赏先春', '最高春', '番卜算', '森春慢', '期夜月', '景龙灯', '集贤宾', '道成归', '晚云高', '琵琶仙', '泪红云', '晴偏好', '落梅风',
                      '朝中措', '缑山月', '赏南枝', '越溪春', '喜长新', '喝火令', '遐方怨', '喜朝天', '朝玉阶', '喜团圆', '閒中好', '满江红', '满园花', '满路花',
                      '满庭花', '满庭霜', '满朝欢', '锦花香', '锦上花', '锦园春', '锦堂春', '锦缠道', '解佩令', '解佩环', '解语花', '解春风', '瑞云浓', '瑞飞好',
                      '瑞鹤仙', '愁风月', '愁倚阑', '感皇恩', '感恩多', '新水令', '新水命', '新念别', '塞垣春', '摸鱼儿', '摸鱼子', '照碧桃', '鹊桥仙', '楚天谣',
                      '楚云深', '鼓笛慢', '意不尽', '献仙音', '殿前欢', '楼上曲', '蓦山溪', '虞美人', '盐角儿', '谪仙怨', '频载酒', '催花乐', '意难忘', '蜀溪春',
                      '满官花', '满院春', '锦帐春', '解火令', '解连环', '解冤结', '瑞龙吟', '愁春来', '感庭秋', '新安路', '塞里春', '照红梅', '鹊踏枝', '鼓笛令',
                      '殿前催', '蓬莱阁', '锯解令', '遥天奉', '揽挣琶', '鲍老催', '献衷心', '瑞鹧鸪', '塞翁吟', '满庭芳', '新荷叶', '献天寿', '碧云深', '碧美蓉',
                      '碧玉箫', '碧桃春', '碧梦', '瑶池燕', '瑶花慢', '翠华引', '翠园枝', '舞春风', '暮云碧', '暮山溪', '摘红英', '赛天香', '潇湘曲', '滴滴金',
                      '酷相思', '箜篌曲', '熙州慢', '睿思新', '福马郎', '滚绣球', '叠萝花', '摘得新', '碧牡丹', '瑶池宴', '瑶阶草', '翠楼吟', '舞迎春', '暮花天',
                      '赛红娘', '潇潇雨', '醉江月', '慢卷紬', '愿成双', '舞马词', '潇湘神', '舞杨花', '翠羽吟', '醉中天', '醉公子', '醉乡春', '醉花间', '醉花番',
                      '醉花荫', '醉思凡', '醉木犀', '醉春台', '醉春风', '醉吟商', '醉桃源', '醉扶归', '醉落拓', '醉梅花', '醉蓬莱', '醉瑶瑟', '燕归来', '燕山亭',
                      '燕同宴', '燕莺语', '踏枝间', '踏青游', '踏春游', '踏阳春', '踏云行', '横塘路', '蕃女怨', '撷芳词', '鹤冲天', '懒画眉', '醋葫芦', '蝴蝶儿',
                      '醉花春', '醉妆词', '醉东风', '醉桃园', '醉落魄', '醉垂鞭', '燕台春', '踏莎行', '踏马阵', '蝶恋花', '鞋儿曲', '怜薄命', '醉红妆', '燕归梁',
                      '踏歌词', '醉思仙', '醉翁操', '燕春台', '醉太平', '撼庭秋', '鹦鹉曲', '穆护砂', '鹧鸪词', '霜花膄', '霜叶飞', '翻翠袖', '濯香令', '鬓云松',
                      '攀鞍态露华慢', '赞浦子', '澡兰香', '镜中人', '霜天晓', '霜菊花', '檐前缺', '鬓边华', '赞成功', '鹧鸪天', '翻香令', '寰海清', '霜花腴',
                      '一江春水', '二十四会', '九重春色', '人在楼上', '十六字令', '大刀将军', '小重山令', '小镇西犯', '千秋万岁', '万年欢慢', '万斯年曲', '上林春慢',
                      '三台春曲', '山镇西犯', '马家春慢', '天下乐令', '少年游慢', '云鬓松令', '无愁可解', '风大松慢', '凤棲梧桐', '月上瓜州', '月上海棠', '六州歌头',
                      '丑奴儿令', '丑奴儿近', '长命女令', '长相思令', '扑蝴蝶近', '玉水明沙', '玉楼春令', '汉宫春慢', '如此江山', '江城子慢', '西江月慢', '西平乐慢',
                      '西施愁春', '传言玉女', '灯月交辉', '红林擒近', '尹州三台', '木兰花慢', '麦秀两岐', '明月逐来', '迎春乐令', '花犯念奴', '庆春泽慢', '应时明近',
                      '应天长慢', '鱼水春来', '鱼水同欢', '送大守词', '法驾道引', '卖花声煞', '雨中花令', '空亭日暮', '侍香金童', '卓牌子慢', '罗敷夜歌', '念家山破',
                      '皂罗特髻', '洞庭春色', '玲珑四犯', '宫中三台', '宫中调笑', '春早湖山', '绕地游慢', '粉蝶儿慢', '金碧芙蓉', '相思令儿', '贺圣朝影', '烛影摇红',
                      '壶中天慢', '秋光满目', '惜双双令', '惜余春慢', '唱调笑令', '雪月先交', '黄河清慢', '渔父家风', '盐角儿令', '海天阔处', '海棠春令', '晚香时候',
                      '拜星月慢', '楚宫春慢', '喜迁莺令', '瑞鹤仙影', '银河浮槎', '望云滩引', '望花花令', '刷子序犯', '越女镜心', '踏莎美人', '隔浦莲近', '隔溪栖令',
                      '疏帘淡月', '鹊桥仙令', '花上月令', '锦堂春慢', '秋色横空', '湘春夜月', '愁倚阑令', '宴春台慢', '虞美人令', '感皇恩慢', '感恩多令', '霓裳羽衣',
                      '辘轳金井', '露华春慢', '鬓云松令', '骊歌一叠', '惠兰芬引', '一枝花犯', '八节同欢', '卜算子慢', '大江东去', '小楼莲花', '千秋岁引', '上林春令',
                      '三调笑令', '女冠子慢', '云淡秋空', '木兰花令', '风中柳令', '氏州第一', '月照梨花', '丑奴儿慢', '不如归去', '长亭怨慢', '公无渡河', '玉腊梅枝',
                      '玉连环影', '江南春慢', '西子妆慢', '朱奴儿犯', '红情绿意', '并蒂芙蓉', '沉醉东风', '泛情波偏', '应天长令', '庆清朝慢', '鱼游春水', '村里逐鼓',
                      '诉衷情近', '画堂春慢', '夜鸟飞慢', '青山湿遍', '祝英台近', '洞仙歌慢', '浪里来煞', '思焦客令', '闺怨无梦', '颂圣朝影', '烘春桃李', '惜黄花慢',
                      '梦玉人引', '捣练子令', '雪月交光', '得春令慢', '海棠花令', '晚云烘月', '绿鸾归令', '郭郎儿慢', '庭院深深', '福寿千春', '换巢鸾凤', '暗香疏影',
                      '隔溪梅令', '紫花儿序', '愁春未醒', '貂裘换酒', '虞美人影', '霜天晓角', '谢春池慢', '辘轳仙影', '潇湘夜雨', '荔枝香近', '双头莲令', '浪淘沙令',
                      '婆罗门引', '采桑子慢', '水调歌头', '八声甘州', '雨中花慢', '恋芳春慢', '高山流水', '紫萸香慢', '春风袅娜', '临江仙引', '临江仙慢', '伊州三台',
                      '八节长欢', '南州春色', '夜飞鹊慢', '孤馆深沉', '安平乐慢', '彩鸾归令', '望南云慢', '步虚子令', '法驾导引', '清平调辞', '献天寿令', '相思儿令',
                      '红林檎近', '绕池游慢', '行香子慢', '诉衷情令', '金盏子令', '长相思慢', '鬲溪梅令', '三犯渡江云', '大江西上曲', '月底修箫谱', '玉人捧露盘',
                      '玉女逢春慢', '玉女摇仙珮', '玉珥坠金环', '东风吹酒面', '东风第一枝', '四笑江梅引', '西湖明月引', '红杏泄春光', '快活年近拍', '扶醉去春寒', '花雪满堆山',
                      '明月生南浦', '巫山一片云', '巫山一段云', '泛情波摘遍', '转调踏莎行', '捉拍丑奴儿', '春夏两相期', '春雪问早梅', '桃园忆故人', '铀带长中空', '缺月挂疏桐',
                      '偷声木兰花', '减字木兰花', '添字浣溪沙', '清风八咏楼', '梁州令叠韵', '弦曲献仙音', '番马舞西风', '喝马一枝花', '阑干万里心', '扁舟寻旧约', '愁倚阑干令',
                      '桂花镇南枝', '摊破丑奴儿', '莺声绕红楼', '琴瑟相思引', '琴调相思引', '瑶台聚八仙', '黄鹤绕碧树', '五福降中天', '金菊对芙蓉', '送入我门来', '醉吟仙小品',
                      '三犯锦园春', '五绿结同心', '玉女迎春慢', '玉树后庭花', '东风齐看力', '四犯剪梅花', '江月见重山', '花发沁园春', '明月逐人来', '明月棹孤舟', '金盏倒垂帘',
                      '采茶煮春碧', '转调二郎神', '细雨鸣春沼', '桃源忆故人', '高平探芳新', '郭郎儿近拍', '减字浣溪沙', '添字采桑子', '绿孟舞风轻', '晴色入青山', '铜人捧露盘',
                      '隔浦莲近拍', '梅子黄时雨', '摊破江城子', '摊破浣溪沙', '满路花捉拍', '征招调中腔', '骤雨打新荷', '春从天上来', '新雁过妆楼', '荷叶铺水面', '摊破采桑子',
                      '金人捧露盘', '江城梅花引', '瑶台第一层', '后庭花破子', '飞雪满群山', '东风齐著力', '五綵结同心', '促拍满路花', '促拍采桑子', '南乡一剪梅', '夏日燕黉堂',
                      '摊破南乡子', '春雪间早梅', '江月晃重山', '金盏倒垂莲', '钿带长中调', '惜花春起早慢', '潇湘逢故人慢', '九重春色万年', '望月楼罗门引', '霓裳中序第一',
                      '爱月夜眠迟慢', '遥天奉翠华引', '凤凰台上忆吹箫']

        a_list = response.css('div.left div.sons div.typecont span a')
        for a in a_list:
            a_str = a.get()
            reg = re.compile('<[^>]*>')
            title = reg.sub('', a_str).strip().split('·')[0]
            if title in cipai_list:
                # print(title)
                # print(a.attrib['href'])
                yield response.follow(a.attrib['href'], callback=self.parse_poems)

    def parse_poems(self, response):
        my_poem = response.css('div.main3 div.left div.sons')[0]
        my_yishang = response.css('div.main3 div.left')
        zhushi_block = None
        background_block = None
        blocks = my_yishang.css('div.contyishang').getall()
        for i in range(len(blocks)):
            if "创作背景" in blocks[i]:
                background_block = blocks[i]
            if "注释" in blocks[i]:
                zhushi_block = blocks[i]

        def process_text(str):
            str = remove_tags(str.strip())
            str = remove_chinese_space(str)
            str = ''.join(str.split())
            return str

        def remove_tags(str):
            reg = re.compile('<[^>]*>')
            return ''.join(reg.sub('', str).strip().split()).strip('创作背景')

        def remove_chinese_space(str):
            reg = '[  ]*'
            return re.sub(reg, '', str)

        def get_note_id(str_list):
            str = ''.join(str_list)
            id = re.findall(r"fanyiShow\(.+?\)", str)[0].split('\'')[1]
            return id

        def get_notes():
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36',
                'Cookie': "login=flase; Hm_lvt_9007fab6814e892d3020a64454da5a55=1612059150,1612148583,1612157633,1612163867; codeyzgswso=22d635072dd3029c; gsw2017user=540751%7c435FF88BA10A9DA831CF6CC54D30218C; login=flase; wxopenid=defoaltid; gswZhanghao=13701970825; gswPhone=13701970825; Hm_lpvt_9007fab6814e892d3020a64454da5a55=1612165231"
            }
            if zhushi_block is None:
                return ''
            elif "展开阅读" not in zhushi_block:
                notes_list = zhushi_block.split('注释')[-1].split('<br>')
                notes = []
                for note in notes_list:
                    reg = re.compile('<[^>]*>')
                    note = reg.sub('', note).strip()
                    if len(note) == 0:
                        continue
                    if '注释' in note:
                        note = note.strip('注释').strip()
                    if note[0] in '①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇':
                        note = note[1:]
                    notes.append(note)
                return notes
            else:
                # id = get_note_id(my_yishang.css("div.contyishang div a").getall())
                id = get_note_id([zhushi_block])
                url = "https://so.gushiwen.cn/nocdn/ajaxfanyi.aspx?id={}".format(id)
                response = requests.get(url, headers=headers)
                html = etree.HTML(response.text)
                if "未登录" in response.text:
                    notes = "未登录"
                else:
                    notes = []
                    my_text = html.xpath('//div[@class="contyishang"]/p[last()]/text()')
                    for t in my_text:
                        if t[0] in '①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇':
                            notes.append(t[1:])
                        else:
                            notes.append(t)
                return notes

        def get_background_id(background_block):
            id = re.findall(r"shangxiShow\(.+?\)", background_block)[0].split('\'')[1]
            return id

        def get_background():
            if background_block is None:
                return ''
            elif "展开阅读" in background_block:
                id = get_background_id(background_block)
                url = "https://so.gushiwen.cn/nocdn/ajaxshangxi.aspx?id={}".format(id)
                response = requests.get(url)
                html = etree.HTML(response.text)
                # print("######################################################")
                # print("url: ",url)
                # print("html: ", html)
                # print("response.text: ",response.text)
                background_text = html.xpath('//div[@class="contyishang"]/p/text()')
                background = process_text(''.join(background_text))
                return background
            else:
                background = process_text(''.join(background_block))
                return background

        def extract_with_css(query):
            print(re.sub(u"\\(.*?\\)|\\{.*?}|\\[.*?]", "", my_poem.css(query).get(default='').strip()))
            return re.sub(u"\\(.*?\\)|\\{.*?}|\\[.*?]", "", my_poem.css(query).get(default='').strip())

        def get_paragragh():
            if len(my_poem.css('div.contson p').getall()) == 0:
                paragraphs = my_poem.css('div.contson::text').getall()
            else:
                paragraphs = my_poem.css('div.contson p::text').getall()

            new_paragraphs = []
            for p in paragraphs:
                new_paragraphs.append(remove_chinese_space(p))  # 去除中文全角空格
            paragraph = '\t'.join(new_paragraphs)
            return re.sub(u"\\(.*?\\)|\\{.*?}|\\[.*?]", "", paragraph.strip())

        yield {
            'title': extract_with_css('div.cont h1::text'),
            'author': extract_with_css('p.source a::text'),
            'paragraphs': get_paragragh(),
            'topic': '冬天',
            'notes': get_notes(),
            'background': get_background(),
        }

关键是        yield {
            'title': extract_with_css('div.cont h1::text'),
            'author': extract_with_css('p.source a::text'),
            'paragraphs': get_paragragh(),
            'topic': '冬天',
            'notes': get_notes(),
            'background': get_background(),
        }

命令行直接输出-o 是json指令关键:

scrapy crawl list -O ./data/爱情.json

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值