爬虫小案例豆瓣电影top250(json格式)
1.json格式(仅供学习参考)
import requests, json, jsonpath
class Start(object):
# 类实例化时会执行
def __init__(self):
self.headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
self.sum_dict = {
'list': []
}
def get_html(self,index):
url = f'https://movie.douban.com/j/chart/top_list?type={index}&interval_id=100:90&action=&start=0&limit=20'
response = requests.get(url, headers=self.headers)
json_data = response.json()
title = jsonpath.jsonpath(json_data, '$..title')
actors = jsonpath.jsonpath(json_data, '$..actors')
release_date = jsonpath.jsonpath(json_data, '$..release_date')
types = jsonpath.jsonpath(json_data, '$..types')
regions = jsonpath.jsonpath(json_data, '$..regions')
score = jsonpath.jsonpath(json_data, '$..score')
vote_count = jsonpath.jsonpath(json_data, '$..vote_count')
cover_url = jsonpath.jsonpath(json_data, '$..cover_url')
for i in zip(title, actors, release_date, types, regions, score, vote_count, cover_url):
# 单条数据字典
dic = {
'电影名称': i[0],
'演员': '/'.join(i[1][:3]),
'上映日期': i[2],
'类型': '/'.join(i[3]),
'地区': '/'.join(i[4]),
'评分': i[5],
'评价人数': i[6],
'图片': i[7]
}
# print(dic)
self.sum_dict['list'].append(dic)
def download(self, title, cover_url):
try:
cover_url_response = requests.get(url=cover_url, headers=self.headers)
cover_url_content = cover_url_response.content
path = f'./图片/{title}.jpg'
with open(path, 'wb') as f:
f.write(cover_url_content)
print(f"{title} 图片下载成功")
except Exception:
print('下载失败')
def save(self):
# 存储为json文件
with open('豆瓣图片.json', 'w', encoding='utf-8') as f:
# json.dump(self.sum_dict, f, ensure_ascii=False, indent=4)
f.write(json.dumps(self.sum_dict, ensure_ascii=False, indent=4))
if __name__ == '__main__':
s = Start() # 实例化类对象
for index in range(1, 3):
s.get_html(index)
for movie in s.sum_dict['list']:
title = movie['电影名称']
cover_url = movie['图片']
s.download(title, cover_url)
s.save()
{
"list": [
{
"电影名称": "蒙古草原,天气晴",
"演员": "普洁/关野吉晴",
"上映日期": "2006-06-03",
"类型": "纪录片",
"地区": "日本",
"评分": "9.7",
"评价人数": 62632,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2153663114.jpg"
},
{
"电影名称": "三十二",
"演员": "韦绍兰/罗善学",
"上映日期": "2014-03-30",
"类型": "纪录片",
"地区": "中国大陆",
"评分": "9.5",
"评价人数": 80198,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2335693756.jpg"
},
{
"电影名称": "大法官金斯伯格",
"演员": "鲁斯·巴德·金斯伯格/比尔·克林顿/奥林·G·哈奇",
"上映日期": "2018-01-21",
"类型": "传记/纪录片",
"地区": "美国",
"评分": "9.5",
"评价人数": 94689,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2511664915.jpg"
},
{
"电影名称": "海豚湾",
"演员": "路易·西霍尤斯/瑞克·欧贝瑞/哈迪·琼斯",
"上映日期": "2009-07-31",
"类型": "纪录片",
"地区": "美国",
"评分": "9.3",
"评价人数": 373652,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2559579779.jpg"
},
{
"电影名称": "里斯本丸沉没",
"演员": "方励/托尼·班纳姆/林阿根",
"上映日期": "2024-09-06",
"类型": "纪录片",
"地区": "中国大陆",
"评分": "9.3",
"评价人数": 160788,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2912588024.jpg"
},
{
"电影名称": "乡村里的中国",
"演员": "",
"上映日期": "2013",
"类型": "纪录片",
"地区": "中国大陆",
"评分": "9.4",
"评价人数": 24044,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2164484961.jpg"
},
{
"电影名称": "久石让在武道馆:与宫崎骏动画一同走过的25年",
"演员": "久石让/大桥望美/高畑勋",
"上映日期": "2008-08-05",
"类型": "纪录片/音乐",
"地区": "日本",
"评分": "9.7",
"评价人数": 14801,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2163632289.jpg"
},
{
"电影名称": "我的章鱼老师",
"演员": "克雷格·福斯特/汤姆·福斯特",
"上映日期": "2020-09-07",
"类型": "剧情/纪录片",
"地区": "南非",
"评分": "9.3",
"评价人数": 52658,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2619541259.jpg"
},
{
"电影名称": "冲天",
"演员": "金士杰/张艾嘉/蔡灿得",
"上映日期": "2015-12-11",
"类型": "纪录片",
"地区": "中国台湾",
"评分": "9.4",
"评价人数": 16708,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2542477749.jpg"
},
{
"电影名称": "坂本龙一:杰作",
"演员": "坂本龙一",
"上映日期": "2024-05-31",
"类型": "纪录片/音乐",
"地区": "日本",
"评分": "9.4",
"评价人数": 29888,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2907966076.jpg"
},
{
"电影名称": "地球之盐",
"演员": "塞巴斯蒂昂·萨尔加多/维姆·文德斯/朱利安·诺里贝罗·萨尔加多",
"上映日期": "2014-10-15",
"类型": "传记/纪录片",
"地区": "法国/意大利/巴西",
"评分": "9.3",
"评价人数": 42373,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2205830188.jpg"
},
{
"电影名称": "算命",
"演员": "历百程/石珍珠/唐小雁",
"上映日期": "2009",
"类型": "纪录片",
"地区": "中国大陆",
"评分": "9.2",
"评价人数": 48286,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2618503222.jpg"
},
{
"电影名称": "人生七年9",
"演员": "",
"上映日期": "2019-06-04",
"类型": "纪录片",
"地区": "英国",
"评分": "9.6",
"评价人数": 15031,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2573211367.jpg"
},
{
"电影名称": "亲爱的,不要跨过那条江",
"演员": "",
"上映日期": "2014-11-27",
"类型": "爱情/纪录片/家庭",
"地区": "韩国",
"评分": "9.2",
"评价人数": 68131,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2209948211.jpg"
},
{
"电影名称": "寻找小糖人",
"演员": "西斯托·罗德里格兹/Steve Rowland/马利克·本德杰鲁",
"上映日期": "2012-01-19",
"类型": "传记/纪录片/音乐",
"地区": "英国/芬兰/瑞典",
"评分": "9.2",
"评价人数": 65215,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1741882642.jpg"
},
{
"电影名称": "家园",
"演员": "扬·阿尔蒂斯-贝特朗/格伦·克洛斯/雅克·冈布兰",
"上映日期": "2009-06-05",
"类型": "纪录片",
"地区": "法国",
"评分": "9.2",
"评价人数": 51766,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p835650453.jpg"
},
{
"电影名称": "人生七年2",
"演员": "Tony Walker",
"上映日期": "1970-12-15",
"类型": "传记/纪录片",
"地区": "英国",
"评分": "9.4",
"评价人数": 21066,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2553000871.jpg"
},
{
"电影名称": "海洋",
"演员": "皮尔斯·布鲁斯南/小佩德罗·阿门达里斯/雅克·贝汉",
"上映日期": "2011-08-12",
"类型": "纪录片",
"地区": "法国/瑞士/西班牙/美国/阿联酋/摩纳哥",
"评分": "9.1",
"评价人数": 158371,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2559581324.jpg"
},
{
"电影名称": "女人",
"演员": "Norma Bastidas/加布里埃拉·梅尔古扎/Shantel Nasir",
"上映日期": "2019-09-01",
"类型": "纪录片",
"地区": "法国",
"评分": "9.4",
"评价人数": 19934,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2797753825.jpg"
},
{
"电影名称": "脸庞,村庄",
"演员": "阿涅斯·瓦尔达/让·热内/让-吕克·戈达尔",
"上映日期": "2017-05-19",
"类型": "纪录片",
"地区": "法国",
"评分": "9.1",
"评价人数": 92846,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2459499263.jpg"
},
{
"电影名称": "末代皇帝",
"演员": "尊龙/陈冲/邬君梅",
"上映日期": "1987-10-04",
"类型": "剧情/传记/历史",
"地区": "英国/意大利/中国大陆/法国",
"评分": "9.3",
"评价人数": 975146,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p452089833.jpg"
},
{
"电影名称": "钢琴家",
"演员": "阿德里安·布罗迪/托马斯·克莱舒曼/艾米莉娅·福克斯",
"上映日期": "2002-05-24",
"类型": "剧情/传记/战争/音乐",
"地区": "英国/法国/波兰/德国/美国",
"评分": "9.3",
"评价人数": 709249,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p1381339291.jpg"
},
{
"电影名称": "南海十三郎",
"演员": "谢君豪/苏玉华/吴绮莉",
"上映日期": "1997-05-15",
"类型": "剧情/传记/爱情",
"地区": "中国香港",
"评分": "9.3",
"评价人数": 93672,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2578760496.jpg"
},
{
"电影名称": "当幸福来敲门",
"演员": "威尔·史密斯/贾登·史密斯/坦迪·牛顿",
"上映日期": "2008-01-17",
"类型": "剧情/传记/家庭",
"地区": "美国",
"评分": "9.2",
"评价人数": 1625227,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p1312700628.jpg"
},
{
"电影名称": "猫鼠游戏",
"演员": "莱昂纳多·迪卡普里奥/汤姆·汉克斯/克里斯托弗·沃肯",
"上映日期": "2003-04-11",
"类型": "传记/犯罪/剧情",
"地区": "美国/加拿大",
"评分": "9.1",
"评价人数": 1140808,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p453924541.jpg"
},
{
"电影名称": "美丽心灵",
"演员": "罗素·克劳/艾德·哈里斯/詹妮弗·康纳利",
"上映日期": "2001-12-13",
"类型": "传记/剧情",
"地区": "美国",
"评分": "9.1",
"评价人数": 824768,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p1665997400.jpg"
},
{
"电影名称": "音乐之声",
"演员": "朱莉·安德鲁斯/克里斯托弗·普卢默/埃琳诺·帕克",
"上映日期": "1965-03-02",
"类型": "剧情/传记/爱情/歌舞",
"地区": "美国",
"评分": "9.1",
"评价人数": 653885,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p453788577.jpg"
},
{
"电影名称": "莫娣",
"演员": "莎莉·霍金斯/伊桑·霍克/卡瑞·玛切特",
"上映日期": "2016-09-02",
"类型": "剧情/传记/爱情",
"地区": "爱尔兰/加拿大",
"评分": "9.1",
"评价人数": 151082,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2431089276.jpg"
},
{
"电影名称": "摔跤吧!爸爸",
"演员": "阿米尔·汗/法缇玛·萨那·纱卡/桑亚·玛荷塔",
"上映日期": "2017-05-05",
"类型": "剧情/传记/运动/家庭",
"地区": "印度",
"评分": "9.0",
"评价人数": 1678525,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2401676338.jpg"
},
{
"电影名称": "泳者之心",
"演员": "黛西·雷德利/蒂尔达·格哈姆-哈维/斯蒂芬·格拉汉姆",
"上映日期": "2024-05-31",
"类型": "剧情/传记/运动",
"地区": "美国",
"评分": "9.0",
"评价人数": 155672,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2910815887.jpg"
},
{
"电影名称": "绿皮书",
"演员": "维果·莫腾森/马赫沙拉·阿里/琳达·卡德里尼",
"上映日期": "2019-03-01",
"类型": "剧情/喜剧/传记/音乐",
"地区": "美国/中国大陆",
"评分": "8.9",
"评价人数": 1800635,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2546114530.jpg"
},
{
"电影名称": "勇敢的心",
"演员": "梅尔·吉布森/苏菲·玛索/布莱恩·考克斯",
"上映日期": "1995-05-18",
"类型": "动作/传记/剧情/历史/战争",
"地区": "美国",
"评分": "8.9",
"评价人数": 588708,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2004174709.jpg"
},
{
"电影名称": "卢旺达饭店",
"演员": "唐·钱德尔/苏菲·奥康内多/华金·菲尼克斯",
"上映日期": "2004-09-11",
"类型": "剧情/传记/历史/战争",
"地区": "英国/南非/意大利/美国",
"评分": "8.9",
"评价人数": 354707,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p470419493.jpg"
},
{
"电影名称": "剃头匠",
"演员": "靖奎/由立平/宋戈",
"上映日期": "2006-10-24",
"类型": "剧情/传记",
"地区": "中国大陆",
"评分": "9.2",
"评价人数": 20892,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2190291916.jpg"
},
{
"电影名称": "隐藏人物",
"演员": "塔拉吉·P·汉森/奥克塔维亚·斯宾瑟/加奈儿·梦奈",
"上映日期": "2016-12-25",
"类型": "剧情/传记/历史",
"地区": "美国",
"评分": "8.9",
"评价人数": 251489,
"图片": "https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2374067318.jpg"
},
{
"电影名称": "童年往事",
"演员": "游安顺/田丰/梅芳",
"上映日期": "1985-08-03",
"类型": "剧情/传记/家庭",
"地区": "中国台湾",
"评分": "8.9",
"评价人数": 72644,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2259777287.jpg"
},
{
"电影名称": "妇女参政论者",
"演员": "凯瑞·穆里根/海伦娜·伯翰·卡特/布莱丹·格里森",
"上映日期": "2015-09-04",
"类型": "剧情/传记/历史",
"地区": "英国",
"评分": "9.0",
"评价人数": 64039,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2260682507.jpg"
},
{
"电影名称": "帝国的毁灭",
"演员": "布鲁诺·冈茨/亚历山德拉·玛丽亚·拉娜/科琳娜·哈弗奇",
"上映日期": "2004-09-08",
"类型": "剧情/传记/历史/战争",
"地区": "德国/奥地利/意大利",
"评分": "8.9",
"评价人数": 121939,
"图片": "https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2191978526.jpg"
},
{
"电影名称": "奥本海默",
"演员": "基里安·墨菲/艾米莉·布朗特/马特·达蒙",
"上映日期": "2023-08-30",
"类型": "剧情/传记/历史",
"地区": "美国/英国",
"评分": "8.8",
"评价人数": 775385,
"图片": "https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2876555451.jpg"
},
{
"电影名称": "模仿游戏",
"演员": "本尼迪克特·康伯巴奇/凯拉·奈特莉/马修·古迪",
"上映日期": "2015-07-21",
"类型": "剧情/传记/战争/同性",
"地区": "英国/美国",
"评分": "8.8",
"评价人数": 697596,
"图片": "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2255040492.jpg"
}
]
}