logo头像
Snippet 博客主题

【Python爬虫】使用Requests库爬取猫眼电影TOP100数据

爬虫分析

爬虫需求

描述: 爬取猫眼电影TOP100的电影名称、时间、评分、海报图片等信息

站点: https://maoyan.com/board/4

分析: 打开站点即是猫眼电影TOP100的第一页,点击下一页,我们观察地址栏URL后边追加了?offset=10的参数,显然offset参数代表偏移量,offset=10表示第一页,offset=20表示第二页,由此可推,若偏移量未n,则电影序号就是n+1到n+10,每页显示10个。因此,想要获取TOP100,要分开请求10次,而10次的offset参数值分别设置为0、10、20…90即可,这样获取不同的页面之后,再通过任意一个的解析器提取相关的数据即可完成。

代码编写

利用正则进行解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin python3.6
# -*- encoding: utf-8 -*-
"""
@File : __init__.py.py
@Description : 利用requests库和lxml解析库爬取猫眼电影TOP100数据
@Author : tong.li
@Email : lt_alex@163.com
@Blog : http://blog.yeamin.top
@Time : 2019/10/12 下午8:31
"""

import requests
import re
import time
from requests.exceptions import RequestException

def request_page(url):
try:
# 设置请求头
headers = {
'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
text = response.text
# 获取电影排名、海报、名称、主演、发布时间、评分
regx = re.compile('<dd>.*?board-index.*?>(.*?)</i>.*?data-src="(.*?)".*?name.*?a.*?>(.*?)</a>'
'.*?star.*?>.*?:(.*?)\s*</p>.*?releasetime.*?>.*?:(.*?)</p>.*?integer.*?>(.*?)</i>'
'.*?fraction.*?>(.*?)</i>.*?</dd>', re.S)
items = re.findall(regx, text)
for item in items:
yield {
'index': item[0],
'name': item[2],
'actor': item[3],
'post_img': item[1],
'time': item[4],
'score': item[5]+item[6]
}
return items
return None
except RequestException:
return None

# 存储:文件/数据库
def store(text,filename):
with open(filename, 'a', encoding='utf-8') as file:
file.write(str(text) + '\n')

def getData(url):
datas = request_page(url)
for data in datas:
# 控制台打印数据
print(data)
# 将数据写入txt纯文本文件中
store(data,'result.txt')


if __name__ == '__main__':
# 猫眼电影TOP100榜单
url = 'https://maoyan.com/board/4?offset='
for i in range(10):
getData(url + str(i * 10))
# 猫眼电影有反爬虫限制,爬的太多会有IP或验证码限制,等待0.5毫秒再次请求
time.sleep(0.5)

利用xlml及Xpath解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin python3.6
# -*- encoding: utf-8 -*-
"""
@File : __init__.py.py
@Description : 利用requests库和lxml解析库爬取猫眼电影TOP100数据
@Author : tong.li
@Email : lt_alex@163.com
@Blog : http://blog.yeamin.top
@Time : 2019/10/12 下午8:31
"""
from lxml import etree
import requests
import time
from requests.exceptions import RequestException

def request_page(url):
try:
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
text = response.text
return text
return None
except RequestException:
return None

def dealData(items):
for item in items:
yield {
'index': item[0],
'name': item[1],
'actor': item[2].strip(),
'time': item[3][5:],
'score': item[4] + item[5],
'post_img': item[6]
}
return items


if __name__ == '__main__':
for i in range(10):
# 猫眼电影TOP100榜单
url = 'https://maoyan.com/board/4?offset='+ str(i * 10)
html = etree.HTML(request_page(url))
indexs = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/i/text()')
name = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/div/div/div[1]/p[1]/a/text()')
actor = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/div/div/div[1]/p[2]/text()')
times = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/div/div/div[1]/p[3]/text()')
score1 = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/div/div/div[2]/p/i[1]/text()')
score2 = html.xpath('//*[@id="app"]/div/div/div[1]/dl/dd/div/div/div[2]/p/i[2]/text()')
# 取图片地址的时候发现问题,打开浏览器F12控制台,在Element看到的img标签图片地址属性名为src,
# 但是在Source下看到的属性名是data-src,原因可能是浏览器对JavaScript代码进行了渲染
images = html.xpath('//*[@class="board-img"]/@data-src')
datas = zip(indexs,name,actor,times,score1,score2,images)
for data in dealData(datas):
print(data)
# 猫眼电影有反爬虫限制,爬的太多会有IP或验证码限制,等待0.5毫秒再次请求
time.sleep(0.5)

爬取结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{'index': '1', 'name': '霸王别姬', 'actor': '主演:张国荣,张丰毅,巩俐', 'time': '1993-07-26', 'score': '9.5', 'post_img': 'https://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c'}
{'index': '2', 'name': '肖申克的救赎', 'actor': '主演:蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿', 'time': '1994-09-10(加拿大)', 'score': '9.5', 'post_img': 'https://p0.meituan.net/movie/283292171619cdfd5b240c8fd093f1eb255670.jpg@160w_220h_1e_1c'}
{'index': '3', 'name': '罗马假日', 'actor': '主演:格利高里·派克,奥黛丽·赫本,埃迪·艾伯特', 'time': '1953-09-02(美国)', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/289f98ceaa8a0ae737d3dc01cd05ab052213631.jpg@160w_220h_1e_1c'}
{'index': '4', 'name': '这个杀手不太冷', 'actor': '主演:让·雷诺,加里·奥德曼,娜塔莉·波特曼', 'time': '1994-09-14(法国)', 'score': '9.5', 'post_img': 'https://p1.meituan.net/movie/6bea9af4524dfbd0b668eaa7e187c3df767253.jpg@160w_220h_1e_1c'}
{'index': '5', 'name': '泰坦尼克号', 'actor': '主演:莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩', 'time': '1998-04-03', 'score': '9.5', 'post_img': 'https://p1.meituan.net/movie/b607fba7513e7f15eab170aac1e1400d878112.jpg@160w_220h_1e_1c'}
{'index': '6', 'name': '唐伯虎点秋香', 'actor': '主演:周星驰,巩俐,郑佩佩', 'time': '1993-07-01(中国香港)', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/da64660f82b98cdc1b8a3804e69609e041108.jpg@160w_220h_1e_1c'}
{'index': '7', 'name': '魂断蓝桥', 'actor': '主演:费雯·丽,罗伯特·泰勒,露塞尔·沃特森', 'time': '1940-05-17(美国)', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/46c29a8b8d8424bdda7715e6fd779c66235684.jpg@160w_220h_1e_1c'}
{'index': '8', 'name': '乱世佳人', 'actor': '主演:费雯·丽,克拉克·盖博,奥利维娅·德哈维兰', 'time': '1939-12-15(美国)', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/223c3e186db3ab4ea3bb14508c709400427933.jpg@160w_220h_1e_1c'}
{'index': '9', 'name': '天空之城', 'actor': '主演:寺田农,鹫尾真知子,龟山助清', 'time': '1992-05-01', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/ba1ed511668402605ed369350ab779d6319397.jpg@160w_220h_1e_1c'}
{'index': '10', 'name': '辛德勒的名单', 'actor': '主演:连姆·尼森,拉尔夫·费因斯,本·金斯利', 'time': '1993-12-15(美国)', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/b0d986a8bf89278afbb19f6abaef70f31206570.jpg@160w_220h_1e_1c'}
{'index': '11', 'name': '音乐之声', 'actor': '主演:朱莉·安德鲁斯,克里斯托弗·普卢默,埃琳诺·帕克', 'time': '1965-03-02(美国)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/6bc004d57358ee6875faa5e9a1239140128550.jpg@160w_220h_1e_1c'}
{'index': '12', 'name': '喜剧之王', 'actor': '主演:周星驰,莫文蔚,张柏芝', 'time': '1999-02-13(中国香港)', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/18e3191039d5e71562477659301f04aa61905.jpg@160w_220h_1e_1c'}
{'index': '13', 'name': '大闹天宫', 'actor': '主演:邱岳峰,毕克,富润生', 'time': '1965-12-31', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/14a7b337e8063e3ce05a5993ed80176b74208.jpg@160w_220h_1e_1c'}
{'index': '14', 'name': '春光乍泄', 'actor': '主演:张国荣,梁朝伟,张震', 'time': '1997-05-30(中国香港)', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/ae7245920d95c03765fe1615f3a1fe3865785.jpg@160w_220h_1e_1c'}
{'index': '15', 'name': '剪刀手爱德华', 'actor': '主演:约翰尼·德普,薇诺娜·瑞德,黛安·韦斯特', 'time': '1990-12-06(美国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/6a964e9cee699267053bd6a4bf6f2671195394.jpg@160w_220h_1e_1c'}
{'index': '16', 'name': '美丽人生', 'actor': '主演:罗伯托·贝尼尼,尼可莱塔·布拉斯基,乔治·坎塔里尼', 'time': '1997-12-20(意大利)', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/43d259ecbcd53e8bbe902632772281d6327525.jpg@160w_220h_1e_1c'}
{'index': '17', 'name': '黑客帝国', 'actor': '主演:基努·里维斯,凯瑞-安·莫斯,劳伦斯·菲什伯恩', 'time': '2000-01-14', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/ad974d3527879f00be2eec29135118163728582.jpg@160w_220h_1e_1c'}
{'index': '18', 'name': '哈利·波特与魔法石', 'actor': '主演:丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森', 'time': '2002-01-26', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/aacb9ed2a6601bfe515ef0970add1715623792.jpg@160w_220h_1e_1c'}
{'index': '19', 'name': '指环王3:王者无敌', 'actor': '主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒', 'time': '2004-03-15', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/932bdfbef5be3543e6b136246aeb99b8123736.jpg@160w_220h_1e_1c'}
{'index': '20', 'name': '无间道', 'actor': '主演:刘德华,梁朝伟,黄秋生', 'time': '2003-09-05', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/606de8f394d40dbcbb9b87943fec71a2130408.jpg@160w_220h_1e_1c'}
{'index': '21', 'name': '蝙蝠侠:黑暗骑士', 'actor': '主演:克里斯蒂安·贝尔,希斯·莱杰,阿伦·伊克哈特', 'time': '2008-07-18(美国)', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/09658109acfea0e248a63932337d8e6a4268980.jpg@160w_220h_1e_1c'}
{'index': '22', 'name': '楚门的世界', 'actor': '主演:金·凯瑞,劳拉·琳妮,诺亚·艾默里奇', 'time': '1998-06-01(美国)', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/8959888ee0c399b0fe53a714bc8a5a17460048.jpg@160w_220h_1e_1c'}
{'index': '23', 'name': '加勒比海盗', 'actor': '主演:约翰尼·德普,凯拉·奈特莉,奥兰多·布鲁姆', 'time': '2003-11-21', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/b05b94b28eca53f325ae8d807fcd4ce01798036.jpg@160w_220h_1e_1c'}
{'index': '24', 'name': '教父2', 'actor': '主演:阿尔·帕西诺,罗伯特·德尼罗,黛安·基顿', 'time': '1974-12-12(美国)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/bb1dee5e0b25889a2410211c1d5010ae190824.jpg@160w_220h_1e_1c'}
{'index': '25', 'name': '射雕英雄传之东成西就', 'actor': '主演:张国荣,梁朝伟,张学友', 'time': '1993-02-05(中国香港)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/53b6f0b66882a53b08896c92076515a8236400.jpg@160w_220h_1e_1c'}
{'index': '26', 'name': '机器人总动员', 'actor': '主演:本·贝尔特,艾丽莎·奈特,杰夫·格尔林', 'time': '2008-06-27(美国)', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/267dd2483f0fb57081474c00fbea38451415571.jpg@160w_220h_1e_1c'}
{'index': '27', 'name': '指环王1:护戒使者', 'actor': '主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒', 'time': '2002-04-04', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/dd08154878aac7c8c649fe3eeb8ccd0a2498277.jpg@160w_220h_1e_1c'}
{'index': '28', 'name': '指环王2:双塔奇兵', 'actor': '主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒', 'time': '2003-04-25', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/02bb9fd161c05bad6089133098efcdb5546589.jpg@160w_220h_1e_1c'}
{'index': '29', 'name': '狮子王', 'actor': '主演:马修·布罗德里克,尼基塔·卡兰姆,詹姆斯·厄尔·琼斯', 'time': '1995-07-15', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/27b76fe6cf3903f3d74963f70786001e1438406.jpg@160w_220h_1e_1c'}
{'index': '30', 'name': '活着', 'actor': '主演:葛优,巩俐,牛犇', 'time': '1994-05-18(法国)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/4c41068ef7608c1d4fbfbe6016e589f7204391.jpg@160w_220h_1e_1c'}
{'index': '31', 'name': '拯救大兵瑞恩', 'actor': '主演:汤姆·汉克斯,马特·达蒙,汤姆·塞兹摩尔', 'time': '1998-11-13', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/a2a287c77415dc1f85b04d288f7d63ab1089754.jpg@160w_220h_1e_1c'}
{'index': '32', 'name': '盗梦空间', 'actor': '主演:莱昂纳多·迪卡普里奥,渡边谦,约瑟夫·高登-莱维特', 'time': '2010-09-01', 'score': '9.2', 'post_img': 'https://p1.meituan.net/movie/2f344a9f9575edbcae9f0abe0578bc90339773.jpg@160w_220h_1e_1c'}
{'index': '33', 'name': '哈尔的移动城堡', 'actor': '主演:倍赏千惠子,木村拓哉,美轮明宏', 'time': '2004-11-20(日本)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/0127b451d5b8f0679c6f81c8ed414bb2432442.jpg@160w_220h_1e_1c'}
{'index': '34', 'name': '忠犬八公的故事', 'actor': '主演:Forest,理查·基尔,琼·艾伦', 'time': '2010-03-12(英国)', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/7787c10ad5e95b03cf83ef9473500d8e282796.jpg@160w_220h_1e_1c'}
{'index': '35', 'name': '疯狂原始人', 'actor': '主演:尼古拉斯·凯奇,艾玛·斯通,瑞安·雷诺兹', 'time': '2013-04-20', 'score': '9.5', 'post_img': 'https://p1.meituan.net/movie/bc022b86345c643ca21d759166f77a553679589.jpg@160w_220h_1e_1c'}
{'index': '36', 'name': '搏击俱乐部', 'actor': '主演:爱德华·哈里森·诺顿,布拉德·皮特,海伦娜·伯翰·卡特', 'time': '1999-10-15(美国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/b3defc07dfaa1b6f5b74852ce38a3f8f242792.jpg@160w_220h_1e_1c'}
{'index': '37', 'name': '东邪西毒', 'actor': '主演:张国荣,梁朝伟,刘嘉玲', 'time': '1994-09-17', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/7e471a9171a410ebc9413b2f1de67afc130067.jpg@160w_220h_1e_1c'}
{'index': '38', 'name': '幽灵公主', 'actor': '主演:松田洋治,石田百合子,田中裕子', 'time': '1998-05-01', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/a08f65e6cb50fab32df5da69ff116f593095363.jpg@160w_220h_1e_1c'}
{'index': '39', 'name': '阿凡达', 'actor': '主演:萨姆·沃辛顿,佐伊·索尔达娜,米歇尔·罗德里格兹', 'time': '2010-01-04', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/91f575ec93f019f428d1f33e3ceca7c5115495.jpg@160w_220h_1e_1c'}
{'index': '40', 'name': '风之谷', 'actor': '主演:岛本须美,永井一郎,坂本千夏', 'time': '1992', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/4f9638ba234c3fb673f23a09968db875371576.jpg@160w_220h_1e_1c'}
{'index': '41', 'name': '十二怒汉', 'actor': '主演:亨利·方达,李·科布,马丁·鲍尔萨姆', 'time': '1957-04-13(美国)', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/df15efd261060d3094a73ef679888d4f238149.jpg@160w_220h_1e_1c'}
{'index': '42', 'name': '大话西游之月光宝盒', 'actor': '主演:周星驰,莫文蔚,吴孟达', 'time': '2014-10-24', 'score': '9.6', 'post_img': 'https://p0.meituan.net/movie/92eb862c42c49f8e41e459c369c4512b226610.jpg@160w_220h_1e_1c'}
{'index': '43', 'name': 'V字仇杀队', 'actor': '主演:娜塔莉·波特曼,雨果·维文,斯蒂芬·瑞', 'time': '2006-03-17(美国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/06ec3c1c647942b1e40bca84036014e9490863.jpg@160w_220h_1e_1c'}
{'index': '44', 'name': '放牛班的春天', 'actor': '主演:热拉尔·朱尼奥,让-巴蒂斯特·莫尼耶,玛丽·布奈尔', 'time': '2004-10-16', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/70de97ebb6b5251ecb7c3f6d7a782a7f189340.jpg@160w_220h_1e_1c'}
{'index': '45', 'name': '当幸福来敲门', 'actor': '主演:威尔·史密斯,贾登·史密斯,坦迪·牛顿', 'time': '2008-01-17', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/5896de3c1474277730e321c9b1db04a9205644.jpg@160w_220h_1e_1c'}
{'index': '46', 'name': '速度与激情5', 'actor': '主演:范·迪塞尔,保罗·沃克,道恩·强森', 'time': '2011-05-12', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/845ce32778a1b3f258de089f91a3979b5766154.jpg@160w_220h_1e_1c'}
{'index': '47', 'name': '驯龙高手', 'actor': '主演:杰伊·巴鲁切尔,杰拉德·巴特勒,亚美莉卡·费雷拉', 'time': '2010-05-14', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/b0d97e4158b47d653d7a81d66f7dd3092146907.jpg@160w_220h_1e_1c'}
{'index': '48', 'name': '勇敢的心', 'actor': '主演:梅尔·吉布森,苏菲·玛索,帕特里克·麦高汉', 'time': '1995-05-24(美国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/f8e9d5a90224746d15dfdbd53d4fae3d209420.jpg@160w_220h_1e_1c'}
{'index': '49', 'name': '闻香识女人', 'actor': '主演:阿尔·帕西诺,克里斯·奥唐纳,加布里埃尔·安瓦尔', 'time': '1992-12-23(美国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/8d7b0b902afd4ec1a3dd7a9c6149463c187734.jpg@160w_220h_1e_1c'}
{'index': '50', 'name': '神偷奶爸', 'actor': '主演:史蒂夫·卡瑞尔,杰森·席格尔,拉塞尔·布兰德', 'time': '2010-07-09(美国)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/85c2bfba6025bfbfb53291ae5924c215308805.jpg@160w_220h_1e_1c'}
{'index': '51', 'name': '黑客帝国3:矩阵革命', 'actor': '主演:基努·里维斯,雨果·维文,凯瑞-安·莫斯', 'time': '2003-11-05', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/2e383b5f5f306f10f9f26d9f1c28cf1d825537.jpg@160w_220h_1e_1c'}
{'index': '52', 'name': '飞屋环游记', 'actor': '主演:爱德华·阿斯纳,乔丹·长井,鲍勃·彼德森', 'time': '2009-08-04', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/47dd790e19dad72b50580641de5608c5199014.jpg@160w_220h_1e_1c'}
{'index': '53', 'name': '断背山', 'actor': '主演:希斯·莱杰,杰克·吉伦哈尔,米歇尔·威廉姆斯', 'time': '2006-01-13(美国)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/e71affe126eeb4f8bfcc738cbddeebc8288766.jpg@160w_220h_1e_1c'}
{'index': '54', 'name': '怦然心动', 'actor': '主演:玛德琳·卡罗尔,卡兰·麦克奥利菲,艾丹·奎因', 'time': '2010-08-06(美国)', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/15f1ac49b6d1ff7b71207672993ed6901536456.jpg@160w_220h_1e_1c'}
{'index': '55', 'name': '三傻大闹宝莱坞', 'actor': '主演:阿米尔·汗,黄渤,卡琳娜·卡普', 'time': '2011-12-08', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/ca4a128a5a54d5b5e35ceba622636c831810197.jpg@160w_220h_1e_1c'}
{'index': '56', 'name': '末代皇帝', 'actor': '主演:尊龙,陈冲,彼得·奥图尔', 'time': '1987-10-23', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/21b9211eb1094af360842472018db634286646.jpg@160w_220h_1e_1c'}
{'index': '57', 'name': '无敌破坏王', 'actor': '主演:约翰·C·赖利,萨拉·西尔弗曼,简·林奇', 'time': '2012-11-06', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/fcc17667b8343131101eeb4c67d90bf9150883.jpg@160w_220h_1e_1c'}
{'index': '58', 'name': '致命魔术', 'actor': '主演:休·杰克曼,克里斯蒂安·贝尔,迈克尔·凯恩', 'time': '2006-10-20(美国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/75c0d3eb584be030a01f2e26741a8f41251454.jpg@160w_220h_1e_1c'}
{'index': '59', 'name': '少年派的奇幻漂流', 'actor': '主演:苏拉·沙玛,伊尔凡·可汗,塔布', 'time': '2012-11-22', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/34998e31c6d07475f1add6b8b16fd21d192579.jpg@160w_220h_1e_1c'}
{'index': '60', 'name': '鬼子来了', 'actor': '主演:姜文,姜宏波,陈强', 'time': '2000-05-12(法国戛纳)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/0b507aa44c4dfbbcc91949b69b1b39a168922.jpg@160w_220h_1e_1c'}
{'index': '61', 'name': '蝙蝠侠:黑暗骑士崛起', 'actor': '主演:克里斯蒂安·贝尔,迈克尔·凯恩,加里·奥德曼', 'time': '2012-08-27', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/96bb58f3e9d213fb0438987d16d27561379209.jpg@160w_220h_1e_1c'}
{'index': '62', 'name': '美丽心灵', 'actor': '主演:罗素·克洛,詹妮弗·康纳利,艾德·哈里斯', 'time': '2001-12-21(美国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/7b7d1f8aa36d7a15463ce6942708a1a7265296.jpg@160w_220h_1e_1c'}
{'index': '63', 'name': '哈利·波特与死亡圣器(下)', 'actor': '主演:丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森', 'time': '2011-08-04', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/bb0eca029cd25329776a4549b3fbe262924727.jpg@160w_220h_1e_1c'}
{'index': '64', 'name': '倩女幽魂', 'actor': '主演:张国荣,王祖贤,午马', 'time': '2011-04-30', 'score': '9.2', 'post_img': 'https://p1.meituan.net/movie/96d98200d2afb4b87ff189f9c15b6545568339.jpg@160w_220h_1e_1c'}
{'index': '65', 'name': '夜访吸血鬼', 'actor': '主演:汤姆·克鲁斯,布拉德·皮特,克尔斯滕·邓斯特', 'time': '1994-11-11(美国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/7ec873ba943f13e3c63789d899bd0e23256871.jpg@160w_220h_1e_1c'}
{'index': '66', 'name': '钢琴家', 'actor': '主演:艾德里安·布洛迪,艾米莉娅·福克斯,米哈乌·热布罗夫斯基', 'time': '2002-09-25(法国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/484171372de45945e8bbbcc97db57e09136701.jpg@160w_220h_1e_1c'}
{'index': '67', 'name': '触不可及', 'actor': '主演:弗朗索瓦·克鲁塞,奥玛·希,安娜·勒尼', 'time': '2011-11-02(法国)', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/1e700e53e4fe29dd5942381bb353c8532239179.jpg@160w_220h_1e_1c'}
{'index': '68', 'name': '本杰明·巴顿奇事', 'actor': '主演:布拉德·皮特,凯特·布兰切特,塔拉吉·P·汉森', 'time': '2008-12-25(美国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/2526f77c650bf7cf3d5ee2dccdeac332244951.jpg@160w_220h_1e_1c'}
{'index': '69', 'name': '甜蜜蜜', 'actor': '主演:黎明,张曼玉,曾志伟', 'time': '2015-02-13', 'score': '9.2', 'post_img': 'https://p1.meituan.net/movie/0b0d45b58946078dd24d4945dd6be3b51329411.jpg@160w_220h_1e_1c'}
{'index': '70', 'name': '大话西游之大圣娶亲', 'actor': '主演:周星驰,朱茵,莫文蔚', 'time': '2014-10-24', 'score': '8.8', 'post_img': 'https://p1.meituan.net/moviemachine/508056769092059fe43a611b949f27d14863831.jpg@160w_220h_1e_1c'}
{'index': '71', 'name': '初恋这件小事', 'actor': '主演:马里奥·毛瑞尔,平采娜·乐维瑟派布恩,阿查拉那·阿瑞亚卫考', 'time': '2012-06-05', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/7ed07b8ea8c0e0d0c7b685d20e3ec64e232004.jpg@160w_220h_1e_1c'}
{'index': '72', 'name': '熔炉', 'actor': '主演:孔刘,郑有美,金智英', 'time': '2011-09-22(韩国)', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/2a0783b4fd95566568f24adfad2181bb5392280.jpg@160w_220h_1e_1c'}
{'index': '73', 'name': '新龙门客栈', 'actor': '主演:张曼玉,梁家辉,甄子丹', 'time': '2012-02-24', 'score': '8.8', 'post_img': 'https://p1.meituan.net/movie/7833126c8c21a11571bb52fbdece0acb811449.jpg@160w_220h_1e_1c'}
{'index': '74', 'name': '素媛', 'actor': '主演:李来,薛耿求,严志媛', 'time': '2013-10-02(韩国)', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/19653e8af59cf473cd40f9ccc0658d93692304.jpg@160w_220h_1e_1c'}
{'index': '75', 'name': '小鞋子', 'actor': '主演:默罕默德·阿米尔·纳吉,Kamal Mirkarimi,Behzad Rafi', 'time': '1999-01-22(美国)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/135c612860fae899df2220149664d97a173555.jpg@160w_220h_1e_1c'}
{'index': '76', 'name': '萤火之森', 'actor': '主演:内山昂辉,佐仓绫音,后藤弘树', 'time': '2011-09-17(日本)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/5420be40e3b755ffe04779b9b199e935256906.jpg@160w_220h_1e_1c'}
{'index': '77', 'name': '教父', 'actor': '主演:马龙·白兰度,阿尔·帕西诺,詹姆斯·肯恩', 'time': '2015-04-18', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/1199dc6273680f175fd9b06c9c36d08a219658.jpg@160w_220h_1e_1c'}
{'index': '78', 'name': '穿条纹睡衣的男孩', 'actor': '主演:阿沙·巴特菲尔德,维拉·法梅加,大卫·休里斯', 'time': '2008-09-12(英国)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/d5970e36c8868a4b746c80f3b3f8a404174615.jpg@160w_220h_1e_1c'}
{'index': '79', 'name': '时空恋旅人', 'actor': '主演:瑞秋·麦克亚当斯,多姆纳尔·格里森,比尔·奈伊', 'time': '2013-09-04(英国)', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/4abc8c932cfacfc0089e2883765d02d1295222.jpg@160w_220h_1e_1c'}
{'index': '80', 'name': '窃听风暴', 'actor': '主演:乌尔里希·穆埃,塞巴斯蒂安·科赫,马蒂娜·格德克', 'time': '2006-03-23(德国)', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/3985eaf3858bea0f2a3d966bf7ee2103178217.jpg@160w_220h_1e_1c'}
{'index': '81', 'name': '7号房的礼物', 'actor': '主演:柳承龙,郑镇荣,朴信惠', 'time': '2013-01-23(韩国)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/6a6e74b2c289f9fa4433dd2dc04a7741331638.jpg@160w_220h_1e_1c'}
{'index': '82', 'name': '恐怖直播', 'actor': '主演:河正宇,李璟荣,李大为', 'time': '2013-07-31(韩国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/b5ff0216e689b3fcc065590c48cd5105255305.jpg@160w_220h_1e_1c'}
{'index': '83', 'name': '海豚湾', 'actor': '主演:里克·奥巴瑞,路易·西霍尤斯,哈迪·琼斯', 'time': '2009-07-31(美国)', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/7373dbba07b50ce6f24336edb96b2ea4271536.jpg@160w_220h_1e_1c'}
{'index': '84', 'name': '忠犬八公物语', 'actor': '主演:仲代达矢,春川真澄,井川比佐志', 'time': '1987-08-01(日本)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/c835b3588d0061ed3b992388a0a96f15160913.jpg@160w_220h_1e_1c'}
{'index': '85', 'name': '上帝之城', 'actor': '主演:亚历桑德雷·罗德里格斯,艾莉丝·布拉加,莱安德鲁·菲尔米诺', 'time': '2002-08-30(巴西)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/b553d13f30100db731ab6cf45668e52d94703.jpg@160w_220h_1e_1c'}
{'index': '86', 'name': '辩护人', 'actor': '主演:宋康昊,郭度沅,吴达洙', 'time': '2013-12-18(韩国)', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/8fabf3894b7d12d3d2f6e66404813670265761.jpg@160w_220h_1e_1c'}
{'index': '87', 'name': '美国往事', 'actor': '主演:罗伯特·德尼罗,詹姆斯·伍兹,伊丽莎白·麦戈文', 'time': '2015-04-23', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/92198a6fc8c3f5d13aa1bdf203572c0f99438.jpg@160w_220h_1e_1c'}
{'index': '88', 'name': '完美的世界', 'actor': '主演:凯文·科斯特纳,克林特·伊斯特伍德,T·J·劳瑟', 'time': '1993-11-24(美国)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/30310858fdab34c7a17cfd7ec8ad8bfc112201.jpg@160w_220h_1e_1c'}
{'index': '89', 'name': '七武士', 'actor': '主演:三船敏郎,志村乔,千秋实', 'time': '1954-04-26(日本)', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/4ffca83fd972f71e291f8ea8d78a4b58594878.jpg@160w_220h_1e_1c'}
{'index': '90', 'name': '一一', 'actor': '主演:吴念真,金燕玲,李凯莉', 'time': '2000-09-20(法国)', 'score': '8.9', 'post_img': 'https://p1.meituan.net/movie/2c0a5fedf4b43d142121b91c6ccabe1b59051.jpg@160w_220h_1e_1c'}
{'index': '91', 'name': '英雄本色', 'actor': '主演:狄龙,张国荣,周润发', 'time': '2017-11-17', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/3e5f5f3aa4b7e5576521e26c2c7c894d253975.jpg@160w_220h_1e_1c'}
{'index': '92', 'name': '阿飞正传', 'actor': '主演:张国荣,张曼玉,刘德华', 'time': '2018-06-25', 'score': '8.8', 'post_img': 'https://p0.meituan.net/movie/885fc379c614a2b4175587b95ac98eb95045650.jpg@160w_220h_1e_1c'}
{'index': '93', 'name': '爱·回家', 'actor': '主演:俞承豪,金艺芬,童孝熙', 'time': '2002-04-05(韩国)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/36a893c53a13f9bb934071b86ae3b5c492427.jpg@160w_220h_1e_1c'}
{'index': '94', 'name': '海洋', 'actor': '主演:雅克·贝汉,姜文,兰斯洛特·佩林', 'time': '2011-08-12', 'score': '9.0', 'post_img': 'https://p0.meituan.net/movie/0018b57299d0d4540330a31244c880a9112971.jpg@160w_220h_1e_1c'}
{'index': '95', 'name': '我爱你', 'actor': '主演:宋在浩,李顺才,尹秀晶', 'time': '2011-02-17(韩国)', 'score': '9.0', 'post_img': 'https://p1.meituan.net/movie/ed50b58bf636d207c56989872a91f4cf305138.jpg@160w_220h_1e_1c'}
{'index': '96', 'name': '黄金三镖客', 'actor': '主演:克林特·伊斯特伍德,李·范·克里夫,埃里·瓦拉赫', 'time': '1966-12-23(意大利)', 'score': '8.9', 'post_img': 'https://p0.meituan.net/movie/cd18ed2c5cda9e71e17e5e6ef61ced172912303.jpg@160w_220h_1e_1c'}
{'index': '97', 'name': '迁徙的鸟', 'actor': '主演:雅克·贝汉,Philippe Labro', 'time': '2001-12-12(法国)', 'score': '9.1', 'post_img': 'https://p1.meituan.net/movie/a1634f4e49c8517ae0a3e4adcac6b0dc43994.jpg@160w_220h_1e_1c'}
{'index': '98', 'name': '千与千寻', 'actor': '主演:柊瑠美,周冬雨,入野自由', 'time': '2019-06-21', 'score': '9.3', 'post_img': 'https://p0.meituan.net/movie/30b20139e68c46d02e0893277d633b701292458.jpg@160w_220h_1e_1c'}
{'index': '99', 'name': '天堂电影院', 'actor': '主演:菲利浦·诺瓦雷,赛尔乔·卡斯特利托,蒂兹亚娜·罗达托', 'time': '2019-06-15', 'score': '9.2', 'post_img': 'https://p0.meituan.net/movie/76fc92cfa6c8f2959431b8aa604ef7ae126414.jpg@160w_220h_1e_1c'}
{'index': '100', 'name': '龙猫', 'actor': '主演:秦岚,糸井重里,岛本须美', 'time': '2018-12-14', 'score': '9.1', 'post_img': 'https://p0.meituan.net/movie/c304c687e287c7c2f9e22cf78257872d277201.jpg@160w_220h_1e_1c'}

总结

其实还可以利用其他解析库进行解析,比如Beautiful Soup 4和PyQuery库,这两个库相比正则和Xpath解析轻巧简单,但是相比之下性能会有所牺牲。

Beautiful Soup 4 解析库对XMl文档的宽容度不好,在当下的互联网环境下,网站结构开发、升级和维护变的很复杂,对于一些不规范的网站而言,解析会有问题,而lxml解决了该问题。另外, Beautiful Soup 4 解析时候会将所有的XMl节点加载到内存中形成DOM树,性能相比正则下降了很多。

PyQuery解析库,其实语法结构其实就是由JavaScript的JQuery库演变而来的,该库CSS选择器支持性特别好,熟练使用JQuery的朋友也必定会使用该会。

因为我本人不喜欢用这个Beautiful Soup 4 库,所以不打算深入研究,另外,PyQuery和JQuery操作类似,我在本文也不做累述。若有读者对该库感兴趣可自行研究。

支付宝打赏 微信打赏

请作者喝杯咖啡吧