Python查看本周口碑电影

1. 查看豆瓣周口碑榜的电影列表

执行结果展示:

1
2
3
4
5
6
7
8
9
10
11
查看豆瓣一周口碑榜:
复仇者联盟4:终局之战
触不可及(美版)
盗梦特攻队
深红累之渊
遇见女孩的感觉
撞死了一只羊
归家:碧昂斯电影作品
西班牙之旅
娑婆诃
番石榴岛

2. 准备工作

3. 练习1:查看豆瓣一周口碑榜

代码比较简单,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看豆瓣一周口碑榜 https://movie.douban.com/
import requests
from lxml import html

url = 'https://movie.douban.com/'
page = requests.Session().get(url)
tree = html.fromstring(page.text)
result = tree.xpath('//td[@class="title"]//a/text()')
# //td :这个相当于指定是大目录;
# [@class="title"]:这个相当于指定的小目录;
# //a :这个相当于最小的目录;
# /text():这个是提取其中的数据。

# 格式输出
print("查看豆瓣一周口碑榜:")
for i in result:
print(i, end='\n')

关键点总结:

  • 网址,eg.上述事例代码中的https://movie.douban.com/
  • 数据格式,eg.上述事例代码中的'//td[@class="title"]//a/text()'
    • 具有一定规律,可通过查看 HTML 源码(浏览器 F12)得出
    • 其中:
      • //td :相当于大目录;
      • [@class="title"]:相当于小目录;
      • //a :这个相当于最小的目录;
      • /text():这个是提取其中的数据。

4. 练习2:查看豆瓣-西安-影讯-上映内容

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
from lxml import html

url = 'https://movie.douban.com/cinema/later/xian/' # 数据的网址:豆瓣-西安-影讯-即将上映内容
page = requests.Session().get(url)
tree = html.fromstring(page.text)
# //div :这个相当于指定是大目录;
# [@class="intro"]:这个相当于指定的小目录;
# //a :这个相当于最小的目录;
# /text():这个是提取其中的数据。
result = tree.xpath('//div[@class="intro"]//a/text()')
print(result)

# # 格式输出
# print("查看豆瓣-西安-影讯-即将上映内容")
# for i in result:
# print(i, end='\n')

运行结果:

1
['港珠澳大桥', '预告片', '下一任:前任', '预告片', '悟空奇遇记', '预告片', '猫公主苏菲', '预告片', '国礼', '预告片', '大破天门阵', '柔情史', '预告片', '罗马', '预告片', '大侦探皮卡丘', '预告片', '进京城', '预告片', '一个母亲的复仇', '预告片', '欢迎来北方II', '预告片', '半边天', '预告片', '一路疯癫', '预告片', '周恩来回延安', '预告片', '海蒂和爷爷', '预告片', '企鹅公路', '预告片', '妈阁是座城', '预告片', '致命梦魇', '预告片', '音乐家', '预告片', '你好现任']

5. 备注

虽然实例代码比较简单,但实际中运行时仍会面临很多问题,比如:

  • 网页数据内容的规则难以归纳
  • 查看的数据不规范(需进一步处理)
  • 大部分网站拥有反Pa机制等