最簡單的豆瓣電影排行爬蟲 萌新均可以看懂

1.獲取都判電影排行榜請求地址:html

 

上圖中url中的 type是愛情片對應的type編碼,start=0,limite=1,表示排行顯示從第一條開始且只顯示一條排行內容json

一條電影item的內容以下:post

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.查詢顯示結果以下:url

相關文章
相關標籤/搜索