电影信息爬取

1.数据来源

​网址​

豆瓣电影基本信息爬取_chrome

2.提取数据项有哪些

  • 导演
  • 编剧
  • 主演
  • 类型
  • 语言
  • 上映日期
  • 时长
  • 评分
  • 评分人数

3.数据解析用到的技术

使用 requests 库获取页面内容,使用 正则表达式提取网页内容。

4.源码

import re
from pprint import pprint
import requests
import json

# 爬取豆瓣《万里归途》详情页

url = 'https://movie.douban.com/subject/26654184/'
headers = { # 请求头
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
}

resp = requests.get(url, headers=headers)
text = resp.text

# 导演
dictor = re.search('导演.*>(.*?)</a>', text).group(1)
# 编剧
editor = re.search('编剧.*?<span.*?>(.*?)</span>', text).group(1)
editor = re.findall('<a.*?>(.*?)</a>', editor)
# 主演
actor = re.search('主演.*?<span.*?>(.*?)</span>', text).group(1)
actor = re.findall('<a.*?>(.*?)</a>', actor)
# 类型
mold = re.search('类型:</span>(.*?)<br/>', text).group(1)
mold = re.findall('<span.*?>(.*?)</span>', mold)
# 语言
language = re.search('语言:</span>(.*?)<br/>', text).group(1)
language = re.findall(' (.*?)/', language)
# 上映日期
date = re.search('上映日期:</span> <span.*?>(.*?)</span><br/>', text).group(1)
# 时长
minutes = re.search('片长:</span> <span.*?>(.*?)</span>', text).group(1)
# 评分
score = re.search('<strong class="ll rating_num" property="v:average">(.*?)</strong>', text).group(1)
# 评价人数
num = re.search('<span property="v:votes">(.*?)</span>人评价', text).group(1)

movieInfo = {
"导演": dictor,
"编剧": editor,
"主演": actor,
"类型": mold,
"语言": language,
"上映日期": date,
"时长": minutes,
"评分": score,
"评价人数": num
}
pprint(movieInfo)
with open('movie.json', 'w', encoding='utf-8') as f:
json.dump(movieInfo, f)

# with open('movie.json', 'r', encoding='utf-8') as f:
# data = json.load(f)
# pprint(data)

运行结果:

{'上映日期': '2022-09-30(中国大陆)',
'主演': ['张译',
'王俊凯',
'殷桃',
'成泰燊',
'张子贤',
'陈昊宇',
'王迅',
'万茜',
'李雪健',
'李晨',
'王智',
'吴京',
'温韬',
'吴恩璇',
'国义骞',
'谢承颖',
'李路琦',
'赵梓冲',
'王照清',
'朱超艺',
'闫昌',
'李凯',
'谢欣华',
'侯晓童',
'穆丽燕',
'奥梅尔·尤祖亚克',
'埃兰·艾哈迈德·洛特夫·拉吉·阿尔加赫菲',
'小伊万·马弗里克',
'尤金·芬克尔',
'埃米尔·扎格鲁尔',
'艾哈迈德·0000·贾比尔·阿尔卡索姆'],
'导演': '饶晓志',
'时长': '137分钟',
'类型': ['剧情', '战争'],
'编剧': ['秦海燕', '史册', '雷志龙', '步京委'],
'评价人数': '188847',
'评分': '7.4',
'语言': ['汉语普通话 ', '阿拉伯语 ']}