scrapy入门

1、下载安装scrapy

指令:pip install scrapy==2.5.0

2、开启scrapy的项目

指令:scrapy startproject test

发生报错

AttributeError: 'SelectReactor' object has no attribute '_handleSignals'

查找资料显示是:

Twisted 第三方库的 23.8.0版本与 scrapy 存在一些兼容性问题

所以对Twisted进行旧版本的安装:pip install Twisted==22.10.0

再次执行创建scrapy项目成功:

查看相关的文件创建

3、创建一个爬虫文件

scrapy genspider douban https://movie.douban.com

4、写好自己需要提取的信息

import scrapy


class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['https://movie.douban.com']
    start_urls = ['https://movie.douban.com/top250?start=0&filter=']

    def parse(self, response):
        print(response.text)
        ol_list = response.xpath('//ol[@class="grid_view"]/li')
        print(ol_list)
        for ol in ol_list:
            item = {}
            item['title'] = ol.xpath('.//div[@class="hd"]/a/span[1]/text()').extract_first()
            item['rating'] = ol.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
            item['quote'] = ol.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()
            print(item)

5、运行爬虫程序

scrapy crawl douban

发生报错

通过使用指令来降低版本

pip install cryptography==3.4.8
pip install pyOpenSSL==21.0.0

在次运行

运行成功,并且有日志打印

6、修改robots协议

7、配置请求头

8、在次运行使用不带log的形式 --nolog

9、scrapy的调试模块导入

添加对应的执行执行

进行运行调用

可以获取到了数据

{'title': '肖申克的救赎', 'rating': '9.7', 'quote': '希望让人自由。'}
{'title': '霸王别姬', 'rating': '9.6', 'quote': '风华绝代。'}
{'title': '阿甘正传', 'rating': '9.5', 'quote': '一部美国近现代史。'}
{'title': '泰坦尼克号', 'rating': '9.5', 'quote': '失去的才是永恒的。 '}
{'title': '这个杀手不太冷', 'rating': '9.4', 'quote': '怪蜀黍和小萝莉不得不说的故事。'}
{'title': '千与千寻', 'rating': '9.4', 'quote': '最好的宫崎骏,最好的久石让。 '}
{'title': '美丽人生', 'rating': '9.5', 'quote': '最美的谎言。'}
{'title': '星际穿越', 'rating': '9.4', 'quote': '爱是一种力量,让我们超越时空感知它的存在。'}
{'title': '盗梦空间', 'rating': '9.4', 'quote': '诺兰给了我们一场无法盗取的梦。'}
{'title': '辛德勒的名单', 'rating': '9.5', 'quote': '拯救一个人,就是拯救整个世界。'}
{'title': '楚门的世界', 'rating': '9.4', 'quote': '如果再也不能见到你,祝你早安,午安,晚安。'}
{'title': '忠犬八公的故事', 'rating': '9.4', 'quote': '永远都不能忘记你所爱的人。'}
{'title': '海上钢琴师', 'rating': '9.3', 'quote': '每个人都要走一条自己坚定了的路,就算是粉身碎骨。 '}
{'title': '三傻大闹宝莱坞', 'rating': '9.2', 'quote': '英俊版憨豆,高情商版谢耳朵。'}
{'title': '放牛班的春天', 'rating': '9.3', 'quote': '天籁一般的童声,是最接近上帝的存在。 '}
{'title': '机器人总动员', 'rating': '9.3', 'quote': '小瓦力,大人生。'}
{'title': '疯狂动物城', 'rating': '9.2', 'quote': '迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。'}
{'title': '无间道', 'rating': '9.3', 'quote': '香港电影史上永不过时的杰作。'}
{'title': '控方证人', 'rating': '9.6', 'quote': '比利·怀德满分作品。'}
{'title': '大话西游之大圣娶亲', 'rating': '9.2', 'quote': '一生所爱。'}
{'title': '熔炉', 'rating': '9.4', 'quote': '我们一路奋战不是为了改变世界,而是为了不让世界改变我们。'}
{'title': '教父', 'rating': '9.3', 'quote': '千万不要记恨你的对手,这样会让你失去理智。'}
{'title': '触不可及', 'rating': '9.3', 'quote': '满满温情的高雅喜剧。'}
{'title': '当幸福来敲门', 'rating': '9.2', 'quote': '平民励志片。 '}
{'title': '寻梦环游记', 'rating': '9.1', 'quote': '死亡不是真的逝去,遗忘才是永恒的消亡。'}

 10、数据的保存

开启pipeline

在pipeline中引擎通过item进行数据的传输

在主文件中添加数据的返回,使用关键之yeild

import scrapy
from scrapy import cmdline

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['https://movie.douban.com']
    start_urls = ['https://movie.douban.com/top250?start=0&filter=']

    def parse(self, response):
        print(response.text)
        ol_list = response.xpath('//ol[@class="grid_view"]/li')
        print(ol_list)
        for ol in ol_list:
            item = {}
            item['title'] = ol.xpath('.//div[@class="hd"]/a/span[1]/text()').extract_first()
            item['rating'] = ol.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
            item['quote'] = ol.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()
            #print(item)
            yield item

if __name__ == '__main__':
    cmdline.execute('scrapy crawl douban --nolog'.split())

 运行监测打印ok:

 需要注意yield只能返回的值有:request对象、baseitem dict none这些值

备注:

scarpy指令自带的一些保存方式

使用-o进行保存:-o douban.json

完整指令:scrapy crawl douban -o douban.json--nolog

运行查看

添加保存的文件格式

scrapy crawl douban -o douban.json -s FEED_EXPORT_ENCODING="utf-8" --nolog
scrapy crawl douban -o douban.csv -s FEED_EXPORT_ENCODING="utf-8" --nolog

 11、scrapy实现翻页的请求

xpath取到后页

//a[text()='后页>']

 使用yeild对scrapy.Request进行一个请求返回

        if response.xpath("//a[text()='后页>']").extract_first() != None:
            next_url = response.urljoin(response.xpath("//a[text()='后页>']/@href").extract_first())
            #next_url = response.xpath("//a[text()='后页>']/@href").extract_first()
            print(next_url)
            yield scrapy.Request(next_url,callback=self.parse)

 备注:srcapy的域名具有过滤功能,可以使用相关的方法进行取消过滤

在代码中加入取消过滤的参数

 yield scrapy.Request(url=next_url,callback=self.parse,dont_filter=True)

或者修改对应的域名来达到满足域名匹配的规则

 

检查翻页效果

抓取到了全部的翻页信息

[
{"title": "肖申克的救赎", "rating": "9.7", "quote": "希望让人自由。"},
{"title": "霸王别姬", "rating": "9.6", "quote": "风华绝代。"},
{"title": "阿甘正传", "rating": "9.5", "quote": "一部美国近现代史。"},
{"title": "泰坦尼克号", "rating": "9.5", "quote": "失去的才是永恒的。 "},
{"title": "这个杀手不太冷", "rating": "9.4", "quote": "怪蜀黍和小萝莉不得不说的故事。"},
{"title": "千与千寻", "rating": "9.4", "quote": "最好的宫崎骏,最好的久石让。 "},
{"title": "美丽人生", "rating": "9.5", "quote": "最美的谎言。"},
{"title": "星际穿越", "rating": "9.4", "quote": "爱是一种力量,让我们超越时空感知它的存在。"},
{"title": "盗梦空间", "rating": "9.4", "quote": "诺兰给了我们一场无法盗取的梦。"},
{"title": "辛德勒的名单", "rating": "9.5", "quote": "拯救一个人,就是拯救整个世界。"},
{"title": "楚门的世界", "rating": "9.4", "quote": "如果再也不能见到你,祝你早安,午安,晚安。"},
{"title": "忠犬八公的故事", "rating": "9.4", "quote": "永远都不能忘记你所爱的人。"},
{"title": "海上钢琴师", "rating": "9.3", "quote": "每个人都要走一条自己坚定了的路,就算是粉身碎骨。 "},
{"title": "三傻大闹宝莱坞", "rating": "9.2", "quote": "英俊版憨豆,高情商版谢耳朵。"},
{"title": "放牛班的春天", "rating": "9.3", "quote": "天籁一般的童声,是最接近上帝的存在。 "},
{"title": "机器人总动员", "rating": "9.3", "quote": "小瓦力,大人生。"},
{"title": "疯狂动物城", "rating": "9.2", "quote": "迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。"},
{"title": "无间道", "rating": "9.3", "quote": "香港电影史上永不过时的杰作。"},
{"title": "控方证人", "rating": "9.6", "quote": "比利·怀德满分作品。"},
{"title": "大话西游之大圣娶亲", "rating": "9.2", "quote": "一生所爱。"},
{"title": "熔炉", "rating": "9.4", "quote": "我们一路奋战不是为了改变世界,而是为了不让世界改变我们。"},
{"title": "教父", "rating": "9.3", "quote": "千万不要记恨你的对手,这样会让你失去理智。"},
{"title": "触不可及", "rating": "9.3", "quote": "满满温情的高雅喜剧。"},
{"title": "当幸福来敲门", "rating": "9.2", "quote": "平民励志片。 "},
{"title": "寻梦环游记", "rating": "9.1", "quote": "死亡不是真的逝去,遗忘才是永恒的消亡。"},
{"title": "末代皇帝", "rating": "9.3", "quote": "“不要跟我比惨,我比你更惨”再适合这部电影不过了。"},
{"title": "龙猫", "rating": "9.2", "quote": "人人心中都有个龙猫,童年就永远不会消失。"},
{"title": "怦然心动", "rating": "9.1", "quote": "真正的幸福是来自内心深处。"},
{"title": "活着", "rating": "9.3", "quote": "张艺谋最好的电影。"},
{"title": "哈利·波特与魔法石", "rating": "9.2", "quote": "童话世界的开端。"},
{"title": "蝙蝠侠:黑暗骑士", "rating": "9.2", "quote": "无尽的黑暗。"},
{"title": "指环王3:王者无敌", "rating": "9.3", "quote": "史诗的终章。"},
{"title": "我不是药神", "rating": "9.0", "quote": "对我们国家而言,这样的电影多一部是一部。"},
{"title": "乱世佳人", "rating": "9.3", "quote": "Tomorrow is another day."},
{"title": "飞屋环游记", "rating": "9.1", "quote": "最后那些最无聊的事情,才是最值得怀念的。 "},
{"title": "素媛", "rating": "9.3", "quote": "受过伤害的人总是笑得最开心,因为他们不愿意让身边的人承受一样的痛苦。"},
{"title": "十二怒汉", "rating": "9.4", "quote": "1957年的理想主义。 "},
{"title": "哈尔的移动城堡", "rating": "9.1", "quote": "带着心爱的人在天空飞翔。"},
{"title": "让子弹飞", "rating": "9.0", "quote": "你给我翻译翻译,神马叫做TMD的惊喜。"},
{"title": "何以为家", "rating": "9.1", "quote": "凝视卑弱生命,用电影改变命运。"},
{"title": "摔跤吧!爸爸", "rating": "9.0", "quote": "你不是在为你一个人战斗,你要让千千万万的女性看到女生并不是只能相夫教子。"},
{"title": "猫鼠游戏", "rating": "9.1", "quote": "骗子大师和执著警探的你追我跑故事。 "},
{"title": "天空之城", "rating": "9.2", "quote": "对天空的追逐,永不停止。 "},
{"title": "鬼子来了", "rating": "9.3", "quote": "对敌人的仁慈,就是对自己残忍。"},
{"title": "海蒂和爷爷", "rating": "9.3", "quote": "如果生活中有什么使你感到快乐,那就去做吧!不要管别人说什么。"},
{"title": "少年派的奇幻漂流", "rating": "9.1", "quote": "瑰丽壮观、无人能及的冒险之旅。"},
{"title": "钢琴家", "rating": "9.3", "quote": "音乐能化解仇恨。"},
{"title": "大话西游之月光宝盒", "rating": "9.0", "quote": "旷古烁今。"},
{"title": "指环王2:双塔奇兵", "rating": "9.2", "quote": "承前启后的史诗篇章。"},
{"title": "闻香识女人", "rating": "9.1", "quote": "史上最美的探戈。"},
{"title": "死亡诗社", "rating": "9.2", "quote": "当一个死水般的体制内出现一个活跃的变数时,所有的腐臭都站在了光明的对面。"},
{"title": "绿皮书", "rating": "8.9", "quote": "去除成见,需要勇气。"},
{"title": "罗马假日", "rating": "9.1", "quote": "爱情哪怕只有一天。"},
{"title": "大闹天宫", "rating": "9.4", "quote": "经典之作,历久弥新。"},
{"title": "天堂电影院", "rating": "9.2", "quote": "那些吻戏,那些青春,都在影院的黑暗里被泪水冲刷得无比清晰。"},
{"title": "黑客帝国", "rating": "9.1", "quote": "视觉革命。"},
{"title": "指环王1:护戒使者", "rating": "9.1", "quote": "传说的开始。"},
{"title": "教父2", "rating": "9.3", "quote": "优雅的孤独。"},
{"title": "狮子王", "rating": "9.1", "quote": "动物版《哈姆雷特》。"},
{"title": "辩护人", "rating": "9.2", "quote": "电影的现实意义大过电影本身。"},
{"title": "饮食男女", "rating": "9.2", "quote": "人生不能像做菜,把所有的料都准备好了才下锅。"},
{"title": "搏击俱乐部", "rating": "9.0", "quote": "邪恶与平庸蛰伏于同一个母体,在特定的时间互相对峙。"},
{"title": "本杰明·巴顿奇事", "rating": "9.0", "quote": "在时间之河里感受溺水之苦。"},
{"title": "美丽心灵", "rating": "9.1", "quote": "爱是一切逻辑和原由。"},
{"title": "穿条纹睡衣的男孩", "rating": "9.2", "quote": "尽管有些不切实际的幻想,这部电影依旧是一部感人肺腑的佳作。"},
{"title": "窃听风暴", "rating": "9.2", "quote": "别样人生。"},
{"title": "情书", "rating": "8.9", "quote": "暗恋的极致。"},
{"title": "两杆大烟枪", "rating": "9.1", "quote": "4个臭皮匠顶个诸葛亮,盖·里奇果然不是盖的。"},
{"title": "西西里的美丽传说", "rating": "8.9", "quote": "美丽无罪。"},
{"title": "音乐之声", "rating": "9.1", "quote": "用音乐化解仇恨,让歌声串起美好。"},
{"title": "看不见的客人", "rating": "8.8", "quote": "你以为你以为的就是你以为的。"},
{"title": "阿凡达", "rating": "8.8", "quote": "绝对意义上的美轮美奂。"},
{"title": "哈利·波特与死亡圣器(下)", "rating": "9.0", "quote": "10年的完美句点。"},
{"title": "拯救大兵瑞恩", "rating": "9.1", "quote": "美利坚精神输出大片No1."},
{"title": "飞越疯人院", "rating": "9.1", "quote": "自由万岁。"},
{"title": "小鞋子", "rating": "9.2", "quote": "奔跑的孩子是天使。"},
{"title": "沉默的羔羊", "rating": "8.9", "quote": "安东尼·霍普金斯的顶级表演。"},
{"title": "功夫", "rating": "8.8", "quote": "警恶惩奸,维护世界和平这个任务就交给你了,好吗?"},
{"title": "布达佩斯大饭店", "rating": "8.9", "quote": "小清新的故事里注入了大历史的情怀。"},
{"title": "禁闭岛", "rating": "8.9", "quote": "昔日翩翩少年,今日大腹便便。"},
{"title": "蝴蝶效应", "rating": "8.9", "quote": "人的命运被自己瞬间的抉择改变。"},
{"title": "哈利·波特与阿兹卡班的囚徒", "rating": "8.9", "quote": "不一样的导演,不一样的哈利·波特。"},
{"title": "致命魔术", "rating": "8.9", "quote": "孪生蝙蝠侠大战克隆金刚狼。"},
{"title": "心灵捕手", "rating": "8.9", "quote": "人生中应该拥有这样的一段豁然开朗。"},
{"title": "超脱", "rating": "9.0", "quote": "穷尽一生,我们要学会的,不过是彼此拥抱。"},
{"title": "低俗小说", "rating": "8.9", "quote": "故事的高级讲法。"},
{"title": "摩登时代", "rating": "9.3", "quote": "大时代中的人生,小人物的悲喜。"},
{"title": "海豚湾", "rating": "9.3", "quote": "海豚的微笑,是世界上最高明的伪装。"},
{"title": "春光乍泄", "rating": "9.0", "quote": "爱情纠缠,男女一致。"},
{"title": "喜剧之王", "rating": "8.8", "quote": "我是一个演员。"},
{"title": "美国往事", "rating": "9.2", "quote": "往事如烟,无处祭奠。"},
{"title": "致命ID", "rating": "8.9", "quote": "最不可能的那个人永远是最可能的。"},
{"title": "杀人回忆", "rating": "8.9", "quote": "关于连环杀人悬案的集体回忆。"},
{"title": "哈利·波特与密室", "rating": "8.9", "quote": "魔法的密室之门已打开..."},
{"title": "红辣椒", "rating": "9.1", "quote": "梦的勾结。"},
{"title": "七宗罪", "rating": "8.8", "quote": "警察抓小偷,老鼠玩死猫。"},
{"title": "加勒比海盗", "rating": "8.8", "quote": "约翰尼·德普的独角戏。"},
{"title": "一一", "rating": "9.1", "quote": "我们都曾经是一一。"},
{"title": "狩猎", "rating": "9.1", "quote": "人言可畏。"},
{"title": "唐伯虎点秋香", "rating": "8.7", "quote": "华太师是黄霑,吴镇宇四大才子之一。"},
{"title": "7号房的礼物", "rating": "8.9", "quote": "《我是山姆》的《美丽人生》。"},
{"title": "被嫌弃的松子的一生", "rating": "8.9", "quote": "以戏谑来戏谑戏谑。"},
{"title": "蝙蝠侠:黑暗骑士崛起", "rating": "8.9", "quote": "诺兰就是保证。"},
{"title": "爱在黎明破晓前", "rating": "8.8", "quote": "缘分是个连绵词,最美不过一瞬。"},
{"title": "请以你的名字呼唤我", "rating": "8.8", "quote": "沉醉在电影的情感和视听氛围中无法自拔。"},
{"title": "断背山", "rating": "8.8", "quote": "每个人心中都有一座断背山。"},
{"title": "剪刀手爱德华", "rating": "8.7", "quote": "浪漫忧郁的成人童话。"},
{"title": "入殓师", "rating": "8.9", "quote": "死可能是一道门,逝去并不是终结,而是超越,走向下一程。"},
{"title": "第六感", "rating": "8.9", "quote": "深入内心的恐怖,出人意料的结局。"},
{"title": "甜蜜蜜", "rating": "8.9", "quote": "相逢只要一瞬间,等待却像是一辈子。"},
{"title": "重庆森林", "rating": "8.8", "quote": "寂寞没有期限。"},
{"title": "超能陆战队", "rating": "8.7", "quote": "Balalala~~~"},
{"title": "勇敢的心", "rating": "8.9", "quote": "史诗大片的典范。"},
{"title": "爱在日落黄昏时", "rating": "8.9", "quote": "九年后的重逢是世俗和责任的交叠,没了悸动和青涩,沧桑而温暖。"},
{"title": "幽灵公主", "rating": "8.9", "quote": "人与自然的战争史诗。"},
{"title": "菊次郎的夏天", "rating": "8.9", "quote": "从没见过那么流氓的温柔,从没见过那么温柔的流氓。"},
{"title": "寄生虫", "rating": "8.8", "quote": null},
{"title": "借东西的小人阿莉埃蒂", "rating": "8.9", "quote": "曾经的那段美好会沉淀为一辈子的记忆。"},
{"title": "消失的爱人", "rating": "8.7", "quote": "年度最佳date movie。"},
{"title": "阳光灿烂的日子", "rating": "8.8", "quote": "一场华丽的意淫。"},
{"title": "无人知晓", "rating": "9.1", "quote": "我的平常生活就是他人的幸福。"},
{"title": "完美的世界", "rating": "9.1", "quote": "坏人的好总是比好人的好来得更感人。"},
{"title": "天使爱美丽", "rating": "8.7", "quote": "法式小清新。 "},
{"title": "倩女幽魂", "rating": "8.8", "quote": "两张绝世的脸。 "},
{"title": "时空恋旅人", "rating": "8.8", "quote": "把每天当作最后一天般珍惜度过,积极拥抱生活,就是幸福。"},
{"title": "小森林 夏秋篇", "rating": "9.0", "quote": "那些静得只能听见呼吸的日子里,你明白孤独即生活。"},
{"title": "未麻的部屋", "rating": "9.1", "quote": "好的剧本是,就算你猜到了结局也猜不到全部。"},
{"title": "哈利·波特与火焰杯", "rating": "8.8", "quote": null},
{"title": "侧耳倾听", "rating": "8.9", "quote": "少女情怀总是诗。"},
{"title": "驯龙高手", "rating": "8.8", "quote": "和谐的生活离不开摸头与被摸头。"},
{"title": "幸福终点站", "rating": "8.8", "quote": "有时候幸福需要等一等。 "},
{"title": "一个叫欧维的男人决定去死", "rating": "8.9", "quote": "惠及一生的美丽。"},
{"title": "怪兽电力公司", "rating": "8.8", "quote": "不要给它起名字,起了名字就有感情了。"},
{"title": "小森林 冬春篇", "rating": "9.0", "quote": "尊敬他人,尊敬你生活的这片土地,明白孤独是人生的常态。"},
{"title": "教父3", "rating": "9.0", "quote": "任何信念的力量,都无法改变命运。"},
{"title": "玩具总动员3", "rating": "8.9", "quote": "跨度十五年的欢乐与泪水。"},
{"title": "傲慢与偏见", "rating": "8.7", "quote": "爱是摈弃傲慢与偏见之后的曙光。"},
{"title": "新世界", "rating": "8.9", "quote": "要做就做得狠一点,这样才能活下去。"},
{"title": "茶馆", "rating": "9.6", "quote": null},
{"title": "萤火之森", "rating": "8.9", "quote": "触不到的恋人。"},
{"title": "釜山行", "rating": "8.6", "quote": "揭露人性的丧尸题材力作。"},
{"title": "被解救的姜戈", "rating": "8.8", "quote": "热血沸腾,那个低俗、性感的无耻混蛋又来了。"},
{"title": "神偷奶爸", "rating": "8.7", "quote": "Mr. I Don't Care其实也有Care的时候。"},
{"title": "色,戒", "rating": "8.7", "quote": "假戏真情,爱欲深海"},
{"title": "告白", "rating": "8.8", "quote": "没有一人完全善,也没有一人完全恶。"},
{"title": "哪吒闹海", "rating": "9.2", "quote": "想你时你在闹海。"},
{"title": "玛丽和马克思", "rating": "9.0", "quote": "你是我最好的朋友,你是我唯一的朋友 。"},
{"title": "九品芝麻官", "rating": "8.7", "quote": null},
{"title": "大鱼", "rating": "8.8", "quote": "抱着梦想而活着的人是幸福的,怀抱梦想而死去的人是不朽的。"},
{"title": "喜宴", "rating": "9.0", "quote": "中国家庭的喜怒哀乐忍。"},
{"title": "模仿游戏", "rating": "8.8", "quote": "他给机器起名“克里斯托弗”,因为这是他初恋的名字。"},
{"title": "头号玩家", "rating": "8.6", "quote": "写给影迷,动漫迷和游戏迷的一封情书。"},
{"title": "花样年华", "rating": "8.8", "quote": "偷情本没有这样美。"},
{"title": "头脑特工队", "rating": "8.8", "quote": "愿我们都不用长大,每一座城堡都能永远存在。"},
{"title": "射雕英雄传之东成西就", "rating": "8.7", "quote": "百看不厌。 "},
{"title": "我是山姆", "rating": "9.0", "quote": "爱并不需要智商 。"},
{"title": "七武士", "rating": "9.3", "quote": "时代悲歌。"},
{"title": "阳光姐妹淘", "rating": "8.8", "quote": "再多各自牛逼的时光,也比不上一起傻逼的岁月。 "},
{"title": "血战钢锯岭", "rating": "8.7", "quote": "优秀的战争片不会美化战场,不会粉饰死亡,不会矮化敌人,不会无视常识,最重要的,不会宣扬战争。"},
{"title": "恐怖直播", "rating": "8.7", "quote": "恐怖分子的“秋菊打官司”。"},
{"title": "惊魂记", "rating": "9.0", "quote": "故事的反转与反转,分裂电影的始祖。"},
{"title": "黑客帝国3:矩阵革命", "rating": "8.8", "quote": "不得不说,《黑客帝国》系列是商业片与科幻、哲学完美结合的典范。"},
{"title": "你的名字。", "rating": "8.5", "quote": "穿越错位的时空,仰望陨落的星辰,你没留下你的名字,我却无法忘记那句“我爱你”。"},
{"title": "三块广告牌", "rating": "8.7", "quote": "怼天怼地,你走后,她与世界为敌。"},
{"title": "电锯惊魂", "rating": "8.7", "quote": "真相就在眼前。"},
{"title": "心迷宫", "rating": "8.7", "quote": "荒诞讽刺,千奇百巧,抽丝剥茧,百转千回。"},
{"title": "达拉斯买家俱乐部", "rating": "8.8", "quote": "Jared Leto的腿比女人还美!"},
{"title": "疯狂原始人", "rating": "8.7", "quote": "老少皆宜,这就是好莱坞动画的魅力。"},
{"title": "谍影重重3", "rating": "8.8", "quote": "像吃了苏打饼一样干脆的电影。"},
{"title": "英雄本色", "rating": "8.6", "quote": "英雄泪短,兄弟情长。 "},
{"title": "上帝之城", "rating": "9.0", "quote": "被上帝抛弃了的上帝之城。"},
{"title": "风之谷", "rating": "8.9", "quote": "动画片的圣经。"},
{"title": "小丑", "rating": "8.7", "quote": null},
{"title": "绿里奇迹", "rating": "8.9", "quote": "天使暂时离开。"},
{"title": "爱在午夜降临前", "rating": "8.9", "quote": "所谓爱情,就是话唠一路,都不会心生腻烦,彼此嫌弃。"},
{"title": "海街日记", "rating": "8.8", "quote": "是枝裕和的家庭习作。"},
{"title": "纵横四海", "rating": "8.8", "quote": "香港浪漫主义警匪动作片的巅峰之作。"},
{"title": "卢旺达饭店", "rating": "8.9", "quote": "当这个世界闭上双眼,他却敞开了怀抱。"},
{"title": "背靠背,脸对脸", "rating": "9.5", "quote": null},
{"title": "心灵奇旅", "rating": "8.7", "quote": null},
{"title": "记忆碎片", "rating": "8.7", "quote": "一个针管引发的血案。"},
{"title": "疯狂的石头", "rating": "8.6", "quote": "中国版《两杆大烟枪》。"},
{"title": "雨中曲", "rating": "9.1", "quote": "骨灰级歌舞片。"},
{"title": "2001太空漫游", "rating": "8.9", "quote": "现代科幻电影的开山之作,最伟大导演的最伟大影片。"},
{"title": "无间道2", "rating": "8.7", "quote": null},
{"title": "岁月神偷", "rating": "8.7", "quote": "岁月流逝,来日可追。"},
{"title": "忠犬八公物语", "rating": "9.2", "quote": "养狗三日,便会对你终其一生。"},
{"title": "小偷家族", "rating": "8.7", "quote": "我们组成了家。"},
{"title": "无敌破坏王", "rating": "8.7", "quote": "迪士尼和皮克斯拿错剧本的产物。"},
{"title": "荒蛮故事", "rating": "8.8", "quote": "始于荒诞,止于更荒诞。"},
{"title": "冰川时代", "rating": "8.6", "quote": "松鼠才是角儿。"},
{"title": "爆裂鼓手", "rating": "8.7", "quote": "这个世界从不善待努力的人,努力了也不一定会成功,但是知道自己在努力,就是活下去的动力。"},
{"title": "恐怖游轮", "rating": "8.5", "quote": "不要企图在重复中寻找已经失去的爱。"},
{"title": "牯岭街少年杀人事件", "rating": "8.9", "quote": "弱者送给弱者的一刀。"},
{"title": "东京教父", "rating": "9.0", "quote": null},
{"title": "贫民窟的百万富翁", "rating": "8.6", "quote": "上帝之城+猜火车+阿甘正传+开心辞典=山寨富翁"},
{"title": "魔女宅急便", "rating": "8.7", "quote": "宫崎骏的电影总让人感觉世界是美好的,阳光明媚的。"},
{"title": "东邪西毒", "rating": "8.6", "quote": "电影诗。"},
{"title": "遗愿清单", "rating": "8.7", "quote": "用剩余不多的时间,去燃烧整个生命。"},
{"title": "大佛普拉斯", "rating": "8.7", "quote": "人们可以登上月球,却永远无法探索人们内心的宇宙。"},
{"title": "你看起来好像很好吃", "rating": "8.9", "quote": "感情不分食草或者食肉。"},
{"title": "可可西里", "rating": "8.9", "quote": "坚硬的信仰。"},
{"title": "黑天鹅", "rating": "8.6", "quote": "黑暗之美。"},
{"title": "城市之光", "rating": "9.3", "quote": "永远的小人物,伟大的卓别林。"},
{"title": "源代码", "rating": "8.5", "quote": "邓肯·琼斯继《月球》之后再度奉献出一部精彩绝伦的科幻佳作。"},
{"title": "真爱至上", "rating": "8.5", "quote": "爱,是个动词。"},
{"title": "海边的曼彻斯特", "rating": "8.6", "quote": "我们都有权利不与自己的过去和解。"},
{"title": "末路狂花", "rating": "8.9", "quote": "没有了退路,只好飞向自由。"},
{"title": "波西米亚狂想曲", "rating": "8.6", "quote": null},
{"title": "雨人", "rating": "8.7", "quote": "生活在自己的世界里,也可以让周围的人显得可笑和渺小。"},
{"title": "青蛇", "rating": "8.6", "quote": "人生如此,浮生如斯。谁人言,花彼岸,此生情长意短。谁都是不懂爱的罢了。"},
{"title": "初恋这件小事", "rating": "8.5", "quote": "黑小鸭速效美白记。"},
{"title": "人工智能", "rating": "8.7", "quote": "对爱的执着,可以超越一切。"},
{"title": "恋恋笔记本", "rating": "8.5", "quote": "爱情没有那么多借口,如果不能圆满,只能说明爱的不够。 "},
{"title": "爱乐之城", "rating": "8.4", "quote": null},
{"title": "虎口脱险", "rating": "8.9", "quote": "永远看不腻的喜剧。"},
{"title": "终结者2:审判日", "rating": "8.8", "quote": "少见的超越首部的续集,动作片中的经典。"},
{"title": "疯狂的麦克斯4:狂暴之路", "rating": "8.7", "quote": "“多么美好的一天!”轰轰轰砰咚,啪哒哒哒轰隆隆,磅~"},
{"title": "罗生门", "rating": "8.8", "quote": "人生的N种可能性。"},
{"title": "芙蓉镇", "rating": "9.3", "quote": null},
{"title": "新龙门客栈", "rating": "8.7", "quote": "嬉笑怒骂,调风动月。"},
{"title": "无耻混蛋", "rating": "8.7", "quote": "昆汀同学越来越变态了,比北野武还杜琪峰。"},
{"title": "崖上的波妞", "rating": "8.6", "quote": null},
{"title": "千钧一发", "rating": "8.8", "quote": "一部能引人思考的科幻励志片。"},
{"title": "花束般的恋爱", "rating": "8.6", "quote": null},
{"title": "彗星来的那一夜", "rating": "8.6", "quote": "小成本大魅力。"},
{"title": "萤火虫之墓", "rating": "8.7", "quote": "幸福是生生不息,却难以触及的远。 "},
{"title": "哈利·波特与死亡圣器(上)", "rating": "8.5", "quote": "最忠于原著的一部。"},
{"title": "奇迹男孩", "rating": "8.6", "quote": "世界不完美,爱会有奇迹。"},
{"title": "黑客帝国2:重装上阵", "rating": "8.7", "quote": "一个精彩的世界观正在缓缓建立。"},
{"title": "二十二", "rating": "8.7", "quote": "有一些东西不应该被遗忘。"},
{"title": "火星救援", "rating": "8.5", "quote": null},
{"title": "血钻", "rating": "8.7", "quote": "每个美丽事物背后都是滴血的现实。"},
{"title": "战争之王", "rating": "8.7", "quote": "做一颗让别人需要你的棋子。"},
{"title": "白日梦想家", "rating": "8.6", "quote": null},
{"title": "步履不停", "rating": "8.8", "quote": "日本的家庭电影已经是世界巅峰了,步履不停是巅峰中的佳作。"},
{"title": "高山下的花环", "rating": "9.5", "quote": null},
{"title": "房间", "rating": "8.8", "quote": "被偷走的岁月,被伤害的生命,被禁锢的灵魂,终将被希望和善意救赎。"},
{"title": "魂断蓝桥", "rating": "8.8", "quote": "中国式内在的美国电影。"},
{"title": "千年女优", "rating": "8.8", "quote": "爱情是一场没有尽头的虚幻追逐。"},
{"title": "谍影重重2", "rating": "8.7", "quote": "谁说王家卫镜头很晃?"},
{"title": "哈利·波特与凤凰社", "rating": "8.5", "quote": null},
{"title": "蜘蛛侠:平行宇宙", "rating": "8.6", "quote": null},
{"title": "弱点", "rating": "8.7", "quote": "拍掉身上的悲伤,从今天开始重新踏上追梦之旅。"},
{"title": "大红灯笼高高挂", "rating": "8.8", "quote": null},
{"title": "谍影重重", "rating": "8.6", "quote": "哗啦啦啦啦,天在下雨,哗啦啦啦啦,云在哭泣……找自己。"},
{"title": "阿飞正传", "rating": "8.5", "quote": "王家卫是一种风格,张国荣是一个代表。"},
{"title": "朗读者", "rating": "8.6", "quote": "当爱情跨越年龄的界限,它似乎能变得更久远一点,成为一种责任,一种水到渠成的相濡以沫。 "},
{"title": "再次出发之纽约遇见你", "rating": "8.6", "quote": "爱我就给我看你的播放列表。"},
{"title": "燃情岁月", "rating": "8.7", "quote": "传奇,不是每个人都可以拥有。"}
]

12、重写start_requests的方法 

    def start_requests(self):
        for i in range(0,10):
            url = "https://movie.douban.com/top250?start={}&filter=".format(i*25)
            yield scrapy.Request(url)
import scrapy
from scrapy import cmdline

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['movie.douban.com']
    start_urls = ['https://movie.douban.com/top250?start=0&filter=']

    def start_requests(self):
        for i in range(0,10):
            url = "https://movie.douban.com/top250?start={}&filter=".format(i*25)
            yield scrapy.Request(url)

    def parse(self, response):
        #print(response.text)
        ol_list = response.xpath('//ol[@class="grid_view"]/li')
        #print(ol_list)
        for ol in ol_list:
            item = {}
            item['title'] = ol.xpath('.//div[@class="hd"]/a/span[1]/text()').extract_first()
            item['rating'] = ol.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
            item['quote'] = ol.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()
            #print(item)
            yield item
        # if response.xpath("//a[text()='后页>']").extract_first() != None:
        #     next_url = response.urljoin(response.xpath("//a[text()='后页>']/@href").extract_first())
        #     print("the nest url is {}".format(next_url))
        #     yield scrapy.Request(url=next_url,callback=self.parse,dont_filter=True)

if __name__ == '__main__':
    cmdline.execute('scrapy crawl douban -o douban.json -s FEED_EXPORT_ENCODING="utf-8" --nolog'.split())

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘多拉的面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值