Python使用IMDBID获取豆瓣信息
本文最后更新于:2 年前
前言
上一篇说到了用API获取豆瓣信息,使用的都是豆瓣链接,这一次我们介绍一个API用于直接使用IMDB号获取豆瓣信息。还是那句话,API说不定哪天就不好使了,且用且珍惜。
代码
废话不多说,上代码:
import requests
from bs4 import BeautifulSoup
import json
import re
def get_douban_info_from_imdb(url):
api_url = 'https://omit.mkrobot.org/movie/infos/'
imdb_id = re.search(r"tt(\d+)", url).group()
req_url = api_url + imdb_id
data = requests.get(req_url).json()
print(data)
if __name__ == '__main__':
imdb_url = 'https://www.imdb.com/title/tt5109280/'
get_douban_info_from_imdb(imdb_url)
显示结果为:
{
'data': {
'title': '寻龙传说 Raya and The Last Dragon',
'image': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2633531206.jpg',
'director': '唐·霍尔 / 卡洛斯·洛佩斯·埃斯特拉达 / 保罗·布里格斯 / 约翰·瑞帕',
'scenarist': '阮基 / 阿黛勒·林 / 保罗·布里格斯 / 唐·霍尔 / 卡洛斯·洛佩斯·埃斯特拉达 / 基尔·默里 / 约翰·瑞帕 / 迪恩·威林斯',
'cast': '凯莉·玛丽·陈 / 奥卡菲娜 / 嘉玛·陈 / 金大贤 / 吴珊卓 / 本尼迪克特·王 / 伊扎克·王 / 塔莉娅·陈 / 艾伦·图代克 / 迪辰·拉克曼 / 帕蒂·哈里森 / 姜成镐 / 罗斯·巴特勒 / 乔娜·肖 / 宋静秀 / 弗朗克西斯·周 / 保罗·扬 / 丽莎·德尔·门多 / 塔妮亚·古纳迪 / 珍妮·关 / 卢锡安·佩雷兹 / 文森特·罗德里格兹三世',
'genre': '动画 / 奇幻 / 冒险',
'region': '美国',
'language': '英语',
'releaseDate': '2021-03-05(中国大陆/美国)',
'runtime': '108分钟',
'aka': '魔龙王国(港) / 寻龙使者:拉雅(台) / 瑞亚和最后一条龙 / 拉雅和最后的龙',
'originalTitle': 'Raya and The Last Dragon',
'imdbId': 'tt5109280',
'average': '7.3',
'votes': '59109',
'year': '2021',
'summary': '很久以前,在充满奇幻色彩的龙佑之邦,人类和龙和谐地生活在一起。但当一股邪恶的力量袭来,龙牺牲了自己来拯救人类。500年后,同样的邪恶力量卷土重来,只有一个孤独的战士拉雅(凯莉·玛丽·陈 配音)承担重任,追踪传说中的最后一条龙,以修复这块破碎的土地,团结分裂的人民。在她的旅程中,她也会逐渐了解到拯救世界不仅仅需要一条龙,还需要信任和团队合作。',
'link': 'https://movie.douban.com/subject/34804147/',
'id': '34804147',
'updateTime': 1616231860574
}
}
感谢那些无私奉献弄出这些API服务器的人~~~
2021.03.22:补充
还有一个API,据说都是豆瓣官方的API,可以直接转换imdbid到豆瓣id,算是一个补充吧。
废话不多说,上代码:
import requests
def get_douban_id_from_imdb_id(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/'
'537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
api_url = "https://movie.douban.com/j/subject_suggest?q="
imdb_id = re.search(r"tt(\d+)", url).group()
req_url = api_url + imdb_id
data = requests.get(req_url, headers=headers).json()[0] # 这里得加上headers模拟浏览器,否则没结果,然后返回的是一个列表
print(data)
if __name__ == '__main__':
imdb_url = 'https://www.imdb.com/title/tt5109280/'
get_douban_id_from_imdb_id(imdb_url)
[{"episode":"","img":"https://img9.doubanio.com\/view\/photo\/s_ratio_poster\/public\/p2633531206.jpg","title":"寻龙传说","url":"https:\/\/movie.douban.com\/subject\/34804147\/?suggest=tt5109280","type":"movie","year":"2021","sub_title":"Raya and The Last Dragon","id":"34804147"}]
可以看到id字段就是豆瓣id了,还有豆瓣的海报图片,那么就可以根据豆瓣id做一些抓取的工作了,好了,就到这里吧。
总结
没有什么好总结了,再见!!