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做一些抓取的工作了,好了,就到这里吧。

总结


没有什么好总结了,再见!!



本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!