初识Python爬虫,使用正则表达式提取数据

初识正则表达式

(前面正则有点无聊,但是必学内容,会的师傅可以看后面实操)

正则:用来匹配字符产的一门表达式语言

测试方式:在线正则表达式测试

1.正则支持普通字符

2.元字符,即一个符号匹配部分对应内容

\d 匹配0-9的数字 \d\d 一行提取2个数字

\w 匹配数字、字母、下划线(0-9、a-z、_)

\W \w取反

\D \d取反

[abc] 自定义匹配abc

[^abc 】(英文的】)

[abc]取反

. 除了换行符都可以匹配。

  1. 量词

    控制,前面元字符出现的频次

    +,前面的元字符出现1次或多次

    *,前面的元字符出现0次或多次。贪婪匹配,尽可能多的匹配数据

? 前面的元字符,出现0次或一次

  1. 惰性匹配(重点

    玩儿吃鸡游戏,晚上一起上游戏,你干嘛呢?打游戏阿

    玩儿.*游戏

    *是贪婪匹配,尽可能多的匹配数据,因此匹配结果为:(玩儿吃鸡游戏,晚上一起上游戏,你干嘛呢?打游戏)

    玩儿.*?游戏

    ?匹配与“玩儿”最近的”游戏“,匹配结果为:(玩儿吃鸡游戏)

    .*? 惰性匹配 匹配距离XXX最近的内容

    在爬虫中的作用可以提取html中自己需要的文字信息(后续推进如何删除div,直接提取文字信息

Python内置模块re(使用正则表达式)

1.基本函数的学习

re.findall(r"元字符",”正则“)查找所有,帮忙把正则所匹配的内容返回

import re
​
result = re.findall(r"\d+","今天我吃了3碗饭,换了花了166元")  # 查找所有,帮忙把正则所匹配的内容返回;拿到的是列表
print(result)
# 返回结果:['3', '166']

re.search(r"元字符",”正则“) 只拿第一个结果即返回

result =re.search(r"\d+","今天我吃了3碗饭,换了花了166元")  # 只拿第一个结果即返回
print(result)
# 返回结果是一个Match对象,如果需要返回数字则需result.group()
re.finditer(r"元字符",”正则“) 把所有结果放入迭代器中,iterator中
result = re.finditer(r"\d+","今天我吃了3碗饭,换了花了166元")  # 把所有结果放入迭代器中,iterator,
for item in result:
    print(item)
    print(item.group())
print(f"result结果为:{result}")
#返回结果
​
`<re.Match object; span=(5, 6), match='3'>`
`3`
`<re.Match object; span=(13, 16), match='166'>`
`166`
`result结果为:<callable_iterator object at 0x000002C352317340>`

预加载 re.compile(r”元字符“)编译,提前准备好正则,需要时直接调用

# 预加载
obj = re.compile(r"\d+")  #  compile编译,提前准备好正则,需要时直接调用
result = obj.findall("今天我吃了3碗饭,换了花了166元")
print(result)
# 返回结果:['3', '166']

来个小小的实操

s = """
    <div><a href="baidu.com">我是百度</a> </div>
    <div><a href="qq.com">我是腾讯</a> </div>
    <div><a href="163.com">我是网易</a> </div>
"""
obj=re.compile(r'<div><a href=".*?">.*?</a> </div>')
result = obj.finditer(s)
for item in result:
    print(item.group())
# 返回结果:
# <div><a href="baidu.com">我是百度</a> </div>
# <div><a href="qq.com">我是腾讯</a> </div>
# <div><a href="163.com">我是网易</a> </div>
​

优化((?P<name>.*?)取出来的数据分到name组中;

s = """
    <div><a href="baidu.com">我是百度</a> </div>
    <div><a href="qq.com">我是腾讯</a> </div>
    <div><a href="163.com">我是网易</a> </div>
"""
obj = re.compile(r'<div><a href="(?P<url>.*?)">(?P<txt>.*?)</a> </div>')
result = obj.finditer(s)
for i in result:
    url = i.group("url")
    txt = i.group("txt")
    print(url,txt)

3.正则爬虫实战

需求:

爬取豆瓣前250部电影的名称,评分及评分人数;

思路:先查看0网站源代码,发现有要提取的信息,那么

首先,提取源代码

然后对源代码进行正则,取出想要获取的数据

最后对数据进行存储

  1. 提取网站源代码

import requests
​
url = "https://movie.douban.com/top250"
resp = requests.get(url)
resp.encode= "utf-8"
print(resp.text)  # 有反爬,无法输出源代码

原因

解决方法:更改请求头信息

head = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0"  # 浏览器请求头信息
}
resp = requests.get(url,headers=head)

即:re.S可以让.匹配换行符

import requests
import re
​
# 1.提取源代码
url = "https://movie.douban.com/top250"
head = {
    # UA 服务器对当前的网络设备进行检测
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0"  # 浏览器请求头信息
}
resp = requests.get(url,headers=head)   # 处理一个小小的反爬,UA
resp.encode= "utf-8"
txt = resp.text
print(txt)  # 有反爬,无法输出源代码
​
​
2. 处理源代码,提取自己需要的数据  re.S可以让.匹配换行符
obj = re.compile(r' <div class="item">.*?<span class="title">(?P<name>.*?)</span>'
                 r'.*?<br>(?P<year>.*?)&nbsp;.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*? '  # txt代码是每行换行的,而.不匹配换行符,即运行到第一个换行符就结束了
                 r'<span>(?P<num>.*?)人评价</span>', re.S)   # re.S可以让.匹配换行符
result = obj.finditer(resp.text)
for item in result:
    dic = item.groupdict()
    dic['year']=dic['year'].strip()   #去掉年份左右两边的空白,换行符,制表符
    print(dic)
# 输出结果
# {'name': '肖申克的救赎', 'year': '1994', 'score': '9.7', 'num': '3075162'}
# {'name': '霸王别姬', 'year': '1993', 'score': '9.6', 'num': '2270533'}
# {'name': '阿甘正传', 'year': '1994', 'score': '9.5', 'num': '2289813'}
# {'name': '泰坦尼克号', 'year': '1997', 'score': '9.5', 'num': '2329954'}
# {'name': '千与千寻', 'year': '2001', 'score': '9.4', 'num': '2378567'}
# {'name': '美丽人生', 'year': '1997', 'score': '9.5', 'num': '1399779'}
# {'name': '这个杀手不太冷', 'year': '1994', 'score': '9.4', 'num': '2410192'}
# {'name': '星际穿越', 'year': '2014', 'score': '9.4', 'num': '2001104'}
# {'name': '盗梦空间', 'year': '2010', 'score': '9.4', 'num': '2190419'}
# {'name': '楚门的世界', 'year': '1998', 'score': '9.4', 'num': '1858604'}
# {'name': '辛德勒的名单', 'year': '1993', 'score': '9.5', 'num': '1183622'}
# {'name': '忠犬八公的故事', 'year': '2009', 'score': '9.4', 'num': '1465284'}
# {'name': '海上钢琴师', 'year': '1998', 'score': '9.3', 'num': '1768311'}
# {'name': '三傻大闹宝莱坞', 'year': '2009', 'score': '9.2', 'num': '1961211'}
# {'name': '放牛班的春天', 'year': '2004', 'score': '9.3', 'num': '1390726'}
# {'name': '机器人总动员', 'year': '2008', 'score': '9.3', 'num': '1395804'}
# {'name': '疯狂动物城', 'year': '2016', 'score': '9.2', 'num': '2087466'}
# {'name': '无间道', 'year': '2002', 'score': '9.3', 'num': '1462178'}
# {'name': '控方证人', 'year': '1957', 'score': '9.6', 'num': '636030'}
# {'name': '大话西游之大圣娶亲', 'year': '1995', 'score': '9.2', 'num': '1616690'}
# {'name': '熔炉', 'year': '2011', 'score': '9.3', 'num': '983991'}
# {'name': '教父', 'year': '1972', 'score': '9.3', 'num': '1033846'}
# {'name': '触不可及', 'year': '2011', 'score': '9.3', 'num': '1203540'}
# {'name': '当幸福来敲门', 'year': '2006', 'score': '9.2', 'num': '1601769'}
# {'name': '寻梦环游记', 'year': '2017', 'score': '9.1', 'num': '1814757'}

但提取的数据也只是界面中第一页的数据,如何提取前250部电影的数据呢?

1.还是查看网站信息,发现,当我点击第二页时,网站后缀改成?start=25&filter,我点击第三页时网站后缀改成?start=50&filter

即网址的变化影响界面数据改变,并且发现,(当前页数-1)*25即为start的值,如何自动化让其start=“”不断跳转自动提取数据呢?

可以想到一个函数,range(1,11),即是提取(1,2,3,4,5,6,7,8,9,10)数据来直接影响url,进而提取每页的源代码并提取数据;即,

import re
import requests
for i in range(1,11):
    page = (i-1)*25
    url = f"https://movie.douban.com/top250?start={page}&filter="
    # print(url)
    head = {
        # UA 服务器对当前的网络设备进行检测
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0"
        # 浏览器请求头信息
    }
    resp = requests.get(url, headers=head)  # 处理一个小小的反爬,UA
    resp.encoding='utf-8'
    # print(resp.text)
​
    obj = re.compile(r' <div class="item">.*?<span class="title">(?P<name>.*?)</span>'
                     r'.*?<br>(?P<year>.*?)&nbsp;.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*? '  # txt代码是每行换行的,而.不匹配换行符,即运行到第一个换行符就结束了
                     r'<span>(?P<num>.*?)人评价</span>', re.S)  # re.S可以让.匹配换行符
    result = obj.finditer(resp.text)
    for i in result:
        dic = i.groupdict()
        dic['year']=dic['year'].split()
        print(dic)
# 输出结果
# {'name': '肖申克的救赎', 'year': ['1994'], 'score': '9.7', 'num': '3075162'}
# {'name': '霸王别姬', 'year': ['1993'], 'score': '9.6', 'num': '2270536'}
# {'name': '阿甘正传', 'year': ['1994'], 'score': '9.5', 'num': '2289813'}
# {'name': '泰坦尼克号', 'year': ['1997'], 'score': '9.5', 'num': '2329954'}
# {'name': '千与千寻', 'year': ['2001'], 'score': '9.4', 'num': '2378579'}
# {'name': '美丽人生', 'year': ['1997'], 'score': '9.5', 'num': '1399784'}
# {'name': '这个杀手不太冷', 'year': ['1994'], 'score': '9.4', 'num': '2410192'}
# {'name': '星际穿越', 'year': ['2014'], 'score': '9.4', 'num': '2001105'}
# {'name': '盗梦空间', 'year': ['2010'], 'score': '9.4', 'num': '2190435'}
# {'name': '楚门的世界', 'year': ['1998'], 'score': '9.4', 'num': '1858612'}
# {'name': '辛德勒的名单', 'year': ['1993'], 'score': '9.5', 'num': '1183626'}
# {'name': '忠犬八公的故事', 'year': ['2009'], 'score': '9.4', 'num': '1465286'}
# {'name': '海上钢琴师', 'year': ['1998'], 'score': '9.3', 'num': '1768312'}
# {'name': '三傻大闹宝莱坞', 'year': ['2009'], 'score': '9.2', 'num': '1961220'}
# {'name': '放牛班的春天', 'year': ['2004'], 'score': '9.3', 'num': '1390726'}
# {'name': '机器人总动员', 'year': ['2008'], 'score': '9.3', 'num': '1395814'}
# {'name': '疯狂动物城', 'year': ['2016'], 'score': '9.2', 'num': '2087466'}
# {'name': '无间道', 'year': ['2002'], 'score': '9.3', 'num': '1462178'}
# {'name': '控方证人', 'year': ['1957'], 'score': '9.6', 'num': '636030'}
# {'name': '大话西游之大圣娶亲', 'year': ['1995'], 'score': '9.2', 'num': '1616693'}
# {'name': '熔炉', 'year': ['2011'], 'score': '9.3', 'num': '983999'}
# {'name': '教父', 'year': ['1972'], 'score': '9.3', 'num': '1033846'}
# {'name': '触不可及', 'year': ['2011'], 'score': '9.3', 'num': '1203556'}
# {'name': '当幸福来敲门', 'year': ['2006'], 'score': '9.2', 'num': '1601771'}
# {'name': '寻梦环游记', 'year': ['2017'], 'score': '9.1', 'num': '1814800'}
# {'name': '末代皇帝', 'year': ['1987'], 'score': '9.3', 'num': '956212'}
# {'name': '龙猫', 'year': ['1988'], 'score': '9.2', 'num': '1338063'}
# {'name': '怦然心动', 'year': ['2010'], 'score': '9.1', 'num': '1939022'}
# {'name': '哈利·波特与魔法石', 'year': ['2001'], 'score': '9.2', 'num': '1299150'}
# {'name': '活着', 'year': ['1994'], 'score': '9.3', 'num': '908489'}
# {'name': '蝙蝠侠:黑暗骑士', 'year': ['2008'], 'score': '9.2', 'num': '1127624'}
# {'name': '指环王3:王者无敌', 'year': ['2003'], 'score': '9.3', 'num': '855407'}
# {'name': '我不是药神', 'year': ['2018'], 'score': '9.0', 'num': '2226059'}
# {'name': '乱世佳人', 'year': ['1939'], 'score': '9.3', 'num': '736906'}
# {'name': '飞屋环游记', 'year': ['2009'], 'score': '9.1', 'num': '1408326'}
# {'name': '素媛', 'year': ['2013'], 'score': '9.3', 'num': '731691'}
# {'name': '哈尔的移动城堡', 'year': ['2004'], 'score': '9.1', 'num': '1180880'}
# {'name': '让子弹飞', 'year': ['2010'], 'score': '9.0', 'num': '1806289'}
# {'name': '十二怒汉', 'year': ['1957'], 'score': '9.4', 'num': '534450'}
# {'name': '何以为家', 'year': ['2018'], 'score': '9.1', 'num': '1106784'}
# {'name': '海蒂和爷爷', 'year': ['2015'], 'score': '9.3', 'num': '695322'}
# {'name': '猫鼠游戏', 'year': ['2002'], 'score': '9.1', 'num': '1115709'}
# {'name': '摔跤吧!爸爸', 'year': ['2016'], 'score': '9.0', 'num': '1652781'}
# {'name': '天空之城', 'year': ['1986'], 'score': '9.2', 'num': '945872'}
# {'name': '鬼子来了', 'year': ['2000'], 'score': '9.3', 'num': '669072'}
# {'name': '少年派的奇幻漂流', 'year': ['2012'], 'score': '9.1', 'num': '1418328'}
# {'name': '钢琴家', 'year': ['2002'], 'score': '9.3', 'num': '695095'}
# {'name': '指环王2:双塔奇兵', 'year': ['2002'], 'score': '9.2', 'num': '803909'}
# {'name': '大话西游之月光宝盒', 'year': ['1995'], 'score': '9.0', 'num': '1287682'}
# {'name': '闻香识女人', 'year': ['1992'], 'score': '9.1', 'num': '953311'}
# {'name': '死亡诗社', 'year': ['1989'], 'score': '9.2', 'num': '800194'}
# {'name': '绿皮书', 'year': ['2018'], 'score': '8.9', 'num': '1765280'}
# {'name': '大闹天宫', 'year': ['1961(中国大陆)', '/', '1964(中国大陆)', '/', '1978(中国大陆)'], 'score': '9.4', 'num': '472673'}
# {'name': '罗马假日', 'year': ['1953'], 'score': '9.1', 'num': '997203'}
# {'name': '黑客帝国', 'year': ['1999'], 'score': '9.1', 'num': '890172'}
# {'name': '指环王1:护戒使者', 'year': ['2001'], 'score': '9.1', 'num': '902044'}
# {'name': '教父2', 'year': ['1974'], 'score': '9.3', 'num': '594072'}
# {'name': '天堂电影院', 'year': ['1988'], 'score': '9.2', 'num': '709719'}
# {'name': '狮子王', 'year': ['1994'], 'score': '9.1', 'num': '902064'}
# {'name': '辩护人', 'year': ['2013'], 'score': '9.2', 'num': '625860'}
# {'name': '饮食男女', 'year': ['1994'], 'score': '9.2', 'num': '667827'}
# {'name': '搏击俱乐部', 'year': ['1999'], 'score': '9.0', 'num': '905925'}
# {'name': '本杰明·巴顿奇事', 'year': ['2008'], 'score': '9.0', 'num': '1045045'}
# {'name': '美丽心灵', 'year': ['2001'], 'score': '9.1', 'num': '813750'}
# {'name': '穿条纹睡衣的男孩', 'year': ['2008'], 'score': '9.2', 'num': '605745'}
# {'name': '窃听风暴', 'year': ['2006'], 'score': '9.2', 'num': '600373'}
# {'name': '情书', 'year': ['1995'], 'score': '8.9', 'num': '1201474'}
# {'name': '两杆大烟枪', 'year': ['1998'], 'score': '9.1', 'num': '635553'}
# {'name': '音乐之声', 'year': ['1965'], 'score': '9.1', 'num': '642611'}
# {'name': '看不见的客人', 'year': ['2016'], 'score': '8.8', 'num': '1358169'}
# {'name': '西西里的美丽传说', 'year': ['2000'], 'score': '8.9', 'num': '1036669'}
# {'name': '哈利·波特与死亡圣器(下)', 'year': ['2011'], 'score': '9.0', 'num': '893408'}
# {'name': '阿凡达', 'year': ['2009'], 'score': '8.8', 'num': '1495461'}
# {'name': '拯救大兵瑞恩', 'year': ['1998'], 'score': '9.1', 'num': '685780'}
# {'name': '功夫', 'year': ['2004'], 'score': '8.9', 'num': '1232239'}
# {'name': '小鞋子', 'year': ['1997'], 'score': '9.2', 'num': '437250'}
# {'name': '飞越疯人院', 'year': ['1975'], 'score': '9.1', 'num': '576174'}
# {'name': '沉默的羔羊', 'year': ['1991'], 'score': '8.9', 'num': '954084'}
# {'name': '布达佩斯大饭店', 'year': ['2014'], 'score': '8.9', 'num': '1013535'}
# {'name': '哈利·波特与阿兹卡班的囚徒', 'year': ['2004'], 'score': '9.0', 'num': '800000'}
# {'name': '蝴蝶效应', 'year': ['2004'], 'score': '8.9', 'num': '1001528'}
# {'name': '禁闭岛', 'year': ['2010'], 'score': '8.9', 'num': '1045946'}
# {'name': '致命魔术', 'year': ['2006'], 'score': '8.9', 'num': '913967'}
# {'name': '心灵捕手', 'year': ['1997'], 'score': '9.0', 'num': '769450'}
# {'name': '超脱', 'year': ['2011'], 'score': '9.0', 'num': '665828'}
# {'name': '低俗小说', 'year': ['1994'], 'score': '8.9', 'num': '896929'}
# {'name': '摩登时代', 'year': ['1936'], 'score': '9.3', 'num': '323889'}
# {'name': '喜剧之王', 'year': ['1999'], 'score': '8.8', 'num': '1028446'}
# {'name': '春光乍泄', 'year': ['1997'], 'score': '9.0', 'num': '671846'}
# {'name': '海豚湾', 'year': ['2009'], 'score': '9.3', 'num': '370473'}
# {'name': '致命ID', 'year': ['2003'], 'score': '8.9', 'num': '887493'}
# {'name': '杀人回忆', 'year': ['2003'], 'score': '8.9', 'num': '776498'}
# {'name': '美国往事', 'year': ['1984'], 'score': '9.1', 'num': '442889'}
# {'name': '哈利·波特与密室', 'year': ['2002'], 'score': '8.9', 'num': '829934'}
# {'name': '一一', 'year': ['2000'], 'score': '9.1', 'num': '443953'}
# {'name': '红辣椒', 'year': ['2006'], 'score': '9.1', 'num': '518825'}
# {'name': '加勒比海盗', 'year': ['2003'], 'score': '8.8', 'num': '913500'}
# {'name': '七宗罪', 'year': ['1995'], 'score': '8.8', 'num': '997248'}
# {'name': '唐伯虎点秋香', 'year': ['1993'], 'score': '8.7', 'num': '1151402'}
# {'name': '狩猎', 'year': ['2012'], 'score': '9.1', 'num': '428282'}
# {'name': '7号房的礼物', 'year': ['2013'], 'score': '8.9', 'num': '590251'}
# {'name': '蝙蝠侠:黑暗骑士崛起', 'year': ['2012'], 'score': '8.9', 'num': '768530'}
# {'name': '甜蜜蜜', 'year': ['1996'], 'score': '8.9', 'num': '616279'}
# {'name': '被嫌弃的松子的一生', 'year': ['2006'], 'score': '8.8', 'num': '739847'}
# {'name': '爱在黎明破晓前', 'year': ['1995'], 'score': '8.8', 'num': '740335'}
# {'name': '超能陆战队', 'year': ['2014'], 'score': '8.8', 'num': '1080437'}
# {'name': '第六感', 'year': ['1999'], 'score': '8.9', 'num': '596608'}
# {'name': '寄生虫', 'year': ['2019'], 'score': '8.8', 'num': '1459328'}
# {'name': '重庆森林', 'year': ['1994'], 'score': '8.8', 'num': '867781'}
# {'name': '入殓师', 'year': ['2008'], 'score': '8.9', 'num': '708828'}
# {'name': '请以你的名字呼唤我', 'year': ['2017'], 'score': '8.8', 'num': '775750'}
# {'name': '爱在日落黄昏时', 'year': ['2004'], 'score': '8.9', 'num': '607238'}
# {'name': '幽灵公主', 'year': ['1997'], 'score': '8.9', 'num': '560119'}
# {'name': '剪刀手爱德华', 'year': ['1990'], 'score': '8.7', 'num': '1079852'}
# {'name': '断背山', 'year': ['2005'], 'score': '8.8', 'num': '743661'}
# {'name': '勇敢的心', 'year': ['1995'], 'score': '8.9', 'num': '582079'}
# {'name': '菊次郎的夏天', 'year': ['1999'], 'score': '8.9', 'num': '636971'}
# {'name': '借东西的小人阿莉埃蒂', 'year': ['2010'], 'score': '8.9', 'num': '591987'}
# {'name': '未麻的部屋', 'year': ['1997'], 'score': '9.1', 'num': '384895'}
# {'name': '消失的爱人', 'year': ['2014'], 'score': '8.7', 'num': '1018347'}
# {'name': '无人知晓', 'year': ['2004'], 'score': '9.1', 'num': '348948'}
# {'name': '时空恋旅人', 'year': ['2013'], 'score': '8.8', 'num': '732074'}
# {'name': '哈利·波特与火焰杯', 'year': ['2005'], 'score': '8.8', 'num': '722047'}
# {'name': '倩女幽魂', 'year': ['1987'], 'score': '8.8', 'num': '778517'}
# {'name': '完美的世界', 'year': ['1993'], 'score': '9.1', 'num': '338848'}
# {'name': '阳光灿烂的日子', 'year': ['1994'], 'score': '8.8', 'num': '653755'}
# {'name': '茶馆', 'year': ['1982(中国大陆)'], 'score': '9.6', 'num': '177404'}
# {'name': '小森林 夏秋篇', 'year': ['2014'], 'score': '9.0', 'num': '449813'}
# {'name': '天使爱美丽', 'year': ['2001'], 'score': '8.7', 'num': '988265'}
# {'name': '侧耳倾听', 'year': ['1995'], 'score': '8.9', 'num': '494537'}
# {'name': '驯龙高手', 'year': ['2010'], 'score': '8.8', 'num': '804325'}
# {'name': '新世界', 'year': ['2013'], 'score': '8.9', 'num': '485614'}
# {'name': '教父3', 'year': ['1990'], 'score': '9.0', 'num': '403053'}
# {'name': '怪兽电力公司', 'year': ['2001'], 'score': '8.8', 'num': '722772'}
# {'name': '头脑特工队', 'year': ['2015'], 'score': '8.8', 'num': '717256'}
# {'name': '幸福终点站', 'year': ['2004'], 'score': '8.8', 'num': '607270'}
# {'name': '一个叫欧维的男人决定去死', 'year': ['2015'], 'score': '8.9', 'num': '523537'}
# {'name': '傲慢与偏见', 'year': ['2005'], 'score': '8.7', 'num': '860982'}
# {'name': '玩具总动员3', 'year': ['2010'], 'score': '8.9', 'num': '555298'}
# {'name': '小森林 冬春篇', 'year': ['2015'], 'score': '9.0', 'num': '399963'}
# {'name': '被解救的姜戈', 'year': ['2012'], 'score': '8.8', 'num': '650210'}
# {'name': '色,戒', 'year': ['2007'], 'score': '8.7', 'num': '888723'}
# {'name': '釜山行', 'year': ['2016'], 'score': '8.6', 'num': '1274558'}
# {'name': '神偷奶爸', 'year': ['2010'], 'score': '8.7', 'num': '998822'}
# {'name': '萤火之森', 'year': ['2011'], 'score': '8.8', 'num': '576127'}
# {'name': '九品芝麻官', 'year': ['1994'], 'score': '8.7', 'num': '737479'}
# {'name': '哪吒闹海', 'year': ['1979'], 'score': '9.2', 'num': '278588'}
# {'name': '告白', 'year': ['2010'], 'score': '8.8', 'num': '706549'}
# {'name': '喜宴', 'year': ['1993'], 'score': '9.0', 'num': '396031'}
# {'name': '玛丽和马克思', 'year': ['2009'], 'score': '9.0', 'num': '438960'}
# {'name': '模仿游戏', 'year': ['2014'], 'score': '8.8', 'num': '687588'}
# {'name': '头号玩家', 'year': ['2018'], 'score': '8.6', 'num': '1440114'}
# {'name': '大鱼', 'year': ['2003'], 'score': '8.8', 'num': '598124'}
# {'name': '花样年华', 'year': ['2000'], 'score': '8.8', 'num': '659219'}
# {'name': '射雕英雄传之东成西就', 'year': ['1993'], 'score': '8.7', 'num': '678513'}
# {'name': '七武士', 'year': ['1954'], 'score': '9.3', 'num': '214177'}
# {'name': '惊魂记', 'year': ['1960'], 'score': '9.0', 'num': '326338'}
# {'name': '我是山姆', 'year': ['2001'], 'score': '9.0', 'num': '357819'}
# {'name': '血战钢锯岭', 'year': ['2016'], 'score': '8.7', 'num': '820163'}
# {'name': '阳光姐妹淘', 'year': ['2011'], 'score': '8.8', 'num': '613016'}
# {'name': '恐怖直播', 'year': ['2013'], 'score': '8.7', 'num': '692991'}
# {'name': '你的名字。', 'year': ['2016'], 'score': '8.5', 'num': '1508744'}
# {'name': '黑客帝国3:矩阵革命', 'year': ['2003'], 'score': '8.8', 'num': '472178'}
# {'name': '三块广告牌', 'year': ['2017'], 'score': '8.7', 'num': '871768'}
# {'name': '心迷宫', 'year': ['2014'], 'score': '8.8', 'num': '571485'}
# {'name': '电锯惊魂', 'year': ['2004'], 'score': '8.7', 'num': '573638'}
# {'name': '达拉斯买家俱乐部', 'year': ['2013'], 'score': '8.8', 'num': '480367'}
# {'name': '小丑', 'year': ['2019'], 'score': '8.7', 'num': '1073210'}
# {'name': '疯狂原始人', 'year': ['2013'], 'score': '8.7', 'num': '881187'}
# {'name': '谍影重重3', 'year': ['2007'], 'score': '8.8', 'num': '443743'}
# {'name': '心灵奇旅', 'year': ['2020'], 'score': '8.7', 'num': '1059360'}
# {'name': '背靠背,脸对脸', 'year': ['1994'], 'score': '9.5', 'num': '156262'}
# {'name': '上帝之城', 'year': ['2002'], 'score': '9.0', 'num': '317597'}
# {'name': '绿里奇迹', 'year': ['1999'], 'score': '8.9', 'num': '360661'}
# {'name': '爱在午夜降临前', 'year': ['2013'], 'score': '8.9', 'num': '438202'}
# {'name': '海街日记', 'year': ['2015'], 'score': '8.8', 'num': '485939'}
# {'name': '英雄本色', 'year': ['1986'], 'score': '8.6', 'num': '574455'}
# {'name': '风之谷', 'year': ['1984'], 'score': '8.9', 'num': '375098'}
# {'name': '无间道2', 'year': ['2003'], 'score': '8.8', 'num': '524619'}
# {'name': '疯狂的石头', 'year': ['2006'], 'score': '8.6', 'num': '875977'}
# {'name': '纵横四海', 'year': ['1991'], 'score': '8.8', 'num': '451746'}
# {'name': '2001太空漫游', 'year': ['1968'], 'score': '8.9', 'num': '363206'}
# {'name': '雨中曲', 'year': ['1952'], 'score': '9.1', 'num': '247119'}
# {'name': '卢旺达饭店', 'year': ['2004'], 'score': '8.9', 'num': '349864'}
# {'name': '记忆碎片', 'year': ['2000'], 'score': '8.7', 'num': '637494'}
# {'name': '小偷家族', 'year': ['2018'], 'score': '8.7', 'num': '857807'}
# {'name': '无敌破坏王', 'year': ['2012'], 'score': '8.7', 'num': '577830'}
# {'name': '岁月神偷', 'year': ['2010'], 'score': '8.7', 'num': '594805'}
# {'name': '冰川时代', 'year': ['2002'], 'score': '8.6', 'num': '652130'}
# {'name': '荒蛮故事', 'year': ['2014'], 'score': '8.8', 'num': '470763'}
# {'name': '牯岭街少年杀人事件', 'year': ['1991'], 'score': '8.9', 'num': '334968'}
# {'name': '忠犬八公物语', 'year': ['1987'], 'score': '9.2', 'num': '207464'}
# {'name': '恐怖游轮', 'year': ['2009'], 'score': '8.5', 'num': '929944'}
# {'name': '爆裂鼓手', 'year': ['2014'], 'score': '8.7', 'num': '628493'}
# {'name': '魔女宅急便', 'year': ['1989'], 'score': '8.7', 'num': '493852'}
# {'name': '东京教父', 'year': ['2003'], 'score': '9.0', 'num': '259876'}
# {'name': '大佛普拉斯', 'year': ['2017'], 'score': '8.7', 'num': '511760'}
# {'name': '末路狂花', 'year': ['1991'], 'score': '9.0', 'num': '299208'}
# {'name': '遗愿清单', 'year': ['2007'], 'score': '8.7', 'num': '500039'}
# {'name': '贫民窟的百万富翁', 'year': ['2008'], 'score': '8.6', 'num': '778683'}
# {'name': '东邪西毒', 'year': ['1994'], 'score': '8.6', 'num': '605519'}
# {'name': '你看起来好像很好吃', 'year': ['2010'], 'score': '8.9', 'num': '353397'}
# {'name': '源代码', 'year': ['2011'], 'score': '8.5', 'num': '880777'}
# {'name': '可可西里', 'year': ['2004'], 'score': '8.9', 'num': '324534'}
# {'name': '疯狂的麦克斯4:狂暴之路', 'year': ['2015'], 'score': '8.7', 'num': '582698'}
# {'name': '城市之光', 'year': ['1931'], 'score': '9.3', 'num': '159397'}
# {'name': '海边的曼彻斯特', 'year': ['2016'], 'score': '8.6', 'num': '600173'}
# {'name': '黑天鹅', 'year': ['2010'], 'score': '8.6', 'num': '813714'}
# {'name': '高山下的花环', 'year': ['1984(中国大陆)', '/', '1985'], 'score': '9.5', 'num': '122455'}
# {'name': '波西米亚狂想曲', 'year': ['2018'], 'score': '8.6', 'num': '650713'}
# {'name': '真爱至上', 'year': ['2003'], 'score': '8.5', 'num': '770457'}
# {'name': '芙蓉镇', 'year': ['1987'], 'score': '9.3', 'num': '163330'}
# {'name': '爱乐之城', 'year': ['2016'], 'score': '8.4', 'num': '1016893'}
# {'name': '青蛇', 'year': ['1993'], 'score': '8.6', 'num': '558787'}
# {'name': '雨人', 'year': ['1988'], 'score': '8.7', 'num': '424642'}
# {'name': '初恋这件小事', 'year': ['2010'], 'score': '8.5', 'num': '1016319'}
# {'name': '终结者2:审判日', 'year': ['1991'], 'score': '8.8', 'num': '362138'}
# {'name': '人工智能', 'year': ['2001'], 'score': '8.7', 'num': '474892'}
# {'name': '花束般的恋爱', 'year': ['2021'], 'score': '8.6', 'num': '724184'}
# {'name': '虎口脱险', 'year': ['1966'], 'score': '8.9', 'num': '276564'}
# {'name': '恋恋笔记本', 'year': ['2004'], 'score': '8.5', 'num': '713058'}
# {'name': '无耻混蛋', 'year': ['2009'], 'score': '8.7', 'num': '516002'}
# {'name': '新龙门客栈', 'year': ['1992'], 'score': '8.7', 'num': '474588'}
# {'name': '罗生门', 'year': ['1950'], 'score': '8.8', 'num': '336716'}
# {'name': '崖上的波妞', 'year': ['2008'], 'score': '8.6', 'num': '537364'}
# {'name': '白日梦想家', 'year': ['2013'], 'score': '8.6', 'num': '567721'}
# {'name': '千钧一发', 'year': ['1997'], 'score': '8.8', 'num': '324593'}
# {'name': '哈利·波特与死亡圣器(上)', 'year': ['2010'], 'score': '8.6', 'num': '629701'}
# {'name': '彗星来的那一夜', 'year': ['2013'], 'score': '8.6', 'num': '634603'}
# {'name': '萤火虫之墓', 'year': ['1988'], 'score': '8.7', 'num': '422531'}
# {'name': '黑客帝国2:重装上阵', 'year': ['2003'], 'score': '8.7', 'num': '430511'}
# {'name': '大红灯笼高高挂', 'year': ['1991'], 'score': '8.8', 'num': '324587'}
# {'name': '火星救援', 'year': ['2015'], 'score': '8.5', 'num': '783247'}
# {'name': '奇迹男孩', 'year': ['2017'], 'score': '8.6', 'num': '576668'}
# {'name': '二十二', 'year': ['2015'], 'score': '8.7', 'num': '303608'}
# {'name': '哈利·波特与凤凰社', 'year': ['2007'], 'score': '8.5', 'num': '625841'}
# {'name': '战争之王', 'year': ['2005'], 'score': '8.7', 'num': '392806'}
# {'name': '血钻', 'year': ['2006'], 'score': '8.7', 'num': '402362'}
# {'name': '步履不停', 'year': ['2008'], 'score': '8.8', 'num': '301612'}
# {'name': '千年女优', 'year': ['2001'], 'score': '8.8', 'num': '294845'}
# {'name': '谍影重重2', 'year': ['2004'], 'score': '8.7', 'num': '375385'}
# {'name': '房间', 'year': ['2015'], 'score': '8.8', 'num': '385426'}
# {'name': '魂断蓝桥', 'year': ['1940'], 'score': '8.8', 'num': '295184'}
# {'name': '蜘蛛侠:平行宇宙', 'year': ['2018'], 'score': '8.6', 'num': '714104'}
# {'name': '弱点', 'year': ['2009'], 'score': '8.7', 'num': '335108'}
# {'name': '谍影重重', 'year': ['2002'], 'score': '8.6', 'num': '456758'}
# {'name': '朗读者', 'year': ['2008'], 'score': '8.6', 'num': '472101'}
# {'name': '阿飞正传', 'year': ['1990'], 'score': '8.5', 'num': '542046'}
# {'name': '隐藏人物', 'year': ['2016'], 'score': '8.9', 'num': '242597'}
# {'name': '冰雪奇缘', 'year': ['2013'], 'score': '8.5', 'num': '751190'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值