【爬蟲】豆瓣電影

之前通過電影天堂+迅雷遠(yuǎn)程下載[xware]+阿里云服務(wù)器+百度云[bypy]共下載及上傳了近1000部電影爹脾,以供自己隨時可以可以通過百度云看以前的一些好看的電影~~

image.png

下載了這些電影后,想做個電影站玩玩,就想著資源該存放到哪里窖张,后來試用了下阿里云的oss,真心好用,不過價格也忒特么貴,雖然用cdn會劃算些富玷,但是~~還是貴,畢竟一部電影至少要1個G的流量既穆,著實耗不起~~

于是赎懦,使用了python的一個百度云插件bypy,將下載的電影全部上傳到百度云上了~~

后來又想著幻工,放在百度云上励两,但是不知道這部電影的評分怎么樣,于是乎就要去豆瓣上找囊颅,但是太麻煩了~~

后來当悔,就琢磨著做一個小程序,把百度云上的資源都放進去踢代,再寫個爬蟲根據(jù)電影名稱爬豆瓣的一些電影資料盲憎;

接下來,就有了這段代碼:

#-*- coding:utf-8 -*-

import sys
import requests
import urllib
import json
import re

"""
[{"episode":"","img":"https://img1.doubanio.com\/view\/photo\/s_ratio_poster\/public\/p2365823697.jpg","title":"冰川時代5:星際碰撞","url":"https:\/\/movie.douban.com\/subject\/25797778\/?suggest=%E5%86%B0%E5%B7%9D%E6%97%B6%E4%BB%A35","type":"movie","year":"2016","sub_title":"Ice Age: Collision Course","id":"25797778"}]

根據(jù)名稱獲取對應(yīng)的豆瓣ID->返回一個列表,默認(rèn)取第一個
"""
def get_id(keyword=None):
    keyword = keyword.encode('utf-8') if isinstance(keyword,unicode) else keyword
    q_word = urllib.quote(keyword)
    url = 'https://movie.douban.com/j/subject_suggest?q={0}'.format(q_word)
    #url = 'https://movie.douban.com/j/subject_suggest?q=%E5%86%B0%E5%B7%9D%E6%97%B6%E4%BB%A35'

    resp = requests.get(url)
    code = resp.status_code
    if code != 200:
        print 'get ID error'
        return False
    result = json.loads(resp.text)
    #print json.dumps(result,ensure_ascii=False)
    if result:
        return result[0].get('id')
    return None

"""
響應(yīng)體json序列化
"""
def get_detail_json(content=None):
    key =  '<script type="application/ld+json">'
    cursor = content.find(key)
    if not cursor:
        return None
    buf = content[cursor+len(key):]
    key =  '</script>'
    cursor = buf.find(key)

    buf = buf[:cursor].strip().replace('\n','')
    try:
        j = json.loads(buf)
    except:
        j = eval(buf)
    return j
    
    

"""
    獲取名稱
"""
def get_name(info={}):
    return info.get('name')
    
"""
    獲取豆瓣鏈接
"""
def get_douban_url(info={}):
    url = 'https://movie.douban.com/{0}'.format(info.get("url"))
    return url
 
"""
    獲取圖片鏈接
"""
def get_image_url(info={}):
    return info.get('image')
 
"""
    獲取導(dǎo)演
"""
def get_directors(info={}):
    L = info.get('directors') or []
    names = [i.get('name') for i in L]
    return names
 
"""
    獲取編劇
"""
def get_authors(info={}):
    L = info.get('author') or []
    names = [i.get('name') for i in L]
    return names
 

"""
    獲取主演
"""
def get_actors(info={}):
    L = info.get('actor') or []
    names = [i.get('name') for i in L]
    return names
 
"""
    獲取上映日期
"""
def get_publish_date(info={}):
    return info.get("datePublished")

"""
    獲取影片類型
  "genre": ["\u559c\u5267", "\u52a8\u753b", "\u5192\u9669"],
"""
def get_movie_type(info={}):
    v = info.get("genre")
    return v
 
"""
    描述
  "description": "影片講述松鼠奎特(克里斯?韋奇 Chris Wedge 配音)為了追松果胳挎,偶然引發(fā)了宇宙事件饼疙,改變并威脅著冰川時代的世界。為了拯救自己慕爬,話嘮樹懶希德(約翰?雷吉扎莫 John Leguizamo 配音...",
"""
def get_description(info={}):
    return info.get("description")
 
"""
評分
"""
def get_score(info={}):
    return info.get("aggregateRating",{}).get("ratingValue")


def get_info(info={}):
    D = dict(
        name = get_name(info),
        image_url= get_image_url(info),
        douban_url= get_douban_url(info),
        directors= get_directors(info),
        authors= get_authors(info),
        actors= get_actors(info),
        description= get_description(info),
        publish_date= get_publish_date(info),
        score= get_score(info),
        types= get_movie_type(info),
    )

    return D
 
 
def get_detail(id=None):
    url = 'https://movie.douban.com/subject/{0}/'.format(id)
    resp = requests.get(url)
    code = resp.status_code
    if code != 200:
        print 'get detail error'
        return False
    
    with open('./content.log', 'wb') as fp:
        fp.write(resp.content)
    info = get_detail_json(resp.text)
    return get_info(info)
    
    
if __name__ == '__main__':
    #1-根據(jù)名稱獲取 ID
    id = get_id(sys.argv[1])

    #2-根據(jù)ID獲取影片內(nèi)容
    resp=get_detail(id)
    for i in resp:
        print i, json.dumps(resp[i],ensure_ascii=False)

小程序后來也做了窑眯,也加了一部分電影進去,效果如下:
【列表頁】


image.png

【影片介紹】


image.png

【百度云鏈接復(fù)制】


image.png

【然后直接打開百度云就能找到電影并觀看了】


image.png

用著確實很方便哈医窿,但是整理起來也挺麻煩磅甩,所以整理了一部分就放棄了~~~~

在此,僅分享下豆瓣電影信息的爬取哈姥卢;

【github】
https://github.com/xuyujie1991/douban_movie_spider

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卷要,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌却妨,老刑警劉巖饵逐,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件括眠,死亡現(xiàn)場離奇詭異彪标,居然都是意外死亡,警方通過查閱死者的電腦和手機掷豺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門捞烟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人当船,你說我怎么就攤上這事题画。” “怎么了德频?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵苍息,是天一觀的道長。 經(jīng)常有香客問我壹置,道長竞思,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任钞护,我火速辦了婚禮盖喷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘难咕。我一直安慰自己课梳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布余佃。 她就那樣靜靜地躺著暮刃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爆土。 梳的紋絲不亂的頭發(fā)上沾歪,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音雾消,去河邊找鬼灾搏。 笑死,一個胖子當(dāng)著我的面吹牛立润,可吹牛的內(nèi)容都是我干的狂窑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桑腮,長吁一口氣:“原來是場噩夢啊……” “哼泉哈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤丛晦,失蹤者是張志新(化名)和其女友劉穎奕纫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烫沙,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡匹层,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锌蓄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片升筏。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘸爽,靈堂內(nèi)的尸體忽然破棺而出您访,到底是詐尸還是另有隱情,我是刑警寧澤剪决,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布灵汪,位于F島的核電站,受9級特大地震影響柑潦,放射性物質(zhì)發(fā)生泄漏享言。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一妒茬、第九天 我趴在偏房一處隱蔽的房頂上張望担锤。 院中可真熱鬧,春花似錦乍钻、人聲如沸肛循。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽多糠。三九已至,卻和暖如春浩考,著一層夾襖步出監(jiān)牢的瞬間夹孔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工析孽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搭伤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓袜瞬,卻偏偏與公主長得像怜俐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邓尤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容