最简单的豆瓣电影排行爬虫 萌新都可以看懂

1.获取都判电影排行榜请求地址:

上图中url中的 type是爱情片对应的type编码,start=0,limite=1,表示排行显示从第一条开始且只显示一条排行内容

一条电影item的内容如下:

rating : ['9.2', '50']
rank : 3
cover_url : https://img3.doubanio.com/view/photo/s_ratio_poster/public/p647099823.jpg
is_playable : True
id : 1295399
types : ['动作', '冒险', '剧情']
regions : ['日本']
title : 七武士
url : https://movie.douban.com/subject/1295399/
release_date : 1954-04-26
actor_count : 20
vote_count : 106162
score : 9.2
actors : ['三船敏郎', '志村乔', '稻叶义男', '宫口精二', '千秋实', '加东大介', '木村功', '本间文子', '小杉义男', '高木新 平', '中岛春雄', '小川虎之助', '东野英治郎', '土屋嘉男', '高堂国典', '津岛惠子', '藤原釜足', '仲代达矢', '左卜全', '马野都留子']
is_watched : False

2.根据1中的url直接编写get请求,用到了requests库和json库,直接上代码:

import requests
import json
#豆瓣电影类型对应的编码
type_dict={
    "剧情":11,
    "喜剧":24,
    "动作":5,
    "爱情":13,
    "科幻":17,
    "动画":25,
    "悬疑":10,
    "惊悚":19,
    "纪录片":1,
    "短片":23,
    "情色":6,
    "同性":26,
    "音乐":14,
    "歌舞":7,
    "家庭":28,
    "儿童":8,
    "传记":2,
    "历史":4,
    "战争":22,
    "犯罪":3,
    "西部":27,
    "奇幻":16,
    "冒险":15,
    "灾难":12,
    "武侠":29,
    "古装":30,
    "运动":18,
    "黑色电影":31
}
#默认显示100排名
def get_ranking(type_num,size=100):
    r= requests.get("https://movie.douban.com/j/chart/top_list?type={}&interval_id=100%3A90&action=&start=0&limit={}".format(type_num,size))
    html = r.text    #返回的内容直接是json形式的字符串,用json库进行解析
    print(r.status_code)
    #直接用json解析
    result=json.loads(html)
    for i in range(len(result)):
        movie_item=result[i]
        print("rank:",movie_item["rank"],"    电影名字:",movie_item["title"])

i=""
while(i!="q"):
    i=input("请输入查看排行的电影类型(按q退出):")
    print("查看的电影为:",i," type_num:",type_dict[i])
    get_ranking(type_dict[i]) 
    print("---------------------------------------")

3.查询显示结果如下:

猜你喜欢

转载自www.cnblogs.com/chen-jack/p/11071049.html