爬蟲之爬取貓眼電影專業(yè)版實時數(shù)據(jù)排行榜

貓眼電影專業(yè)版實時數(shù)據(jù)排行榜是個持續(xù)更新的用ajax寫成的網(wǎng)站,一般而言,爬取它比較麻煩,需要使用ajax/js進行爬取,python中的requests庫可以獲取網(wǎng)站的ajax,再通過json庫解析,就可以完成爬取。

#貓眼電影實時爬取  
#2017/8/1  
import os  
import requests  
import json  
import time   
import csv  
  
#鏈接url  
def get_to_link():  
    try:  
        r = requests.get("https://box.maoyan.com/promovie/api/box/second.json")  
        r.raise_for_status()  
        r.encoding = r.apparent_encoding  
        return r.text  
    except:  
        print("鏈接錯誤?。?!")  
        return ''  
  
#json化字符串  
def json_text(text):  
    jd = json.loads(text)  
    return jd  
  
#返回實時日期  
def date_time(jd):  
    ja = jd['data']  
    date = ja['queryDate']#返回日期  
    alltime = ja['updateInfo'].split()[1]#返回時間  
    money = ja['totalBox'] + ja['totalBoxUnit']#返回總票房  
    return date,alltime,money  
  
#返回影片票房  
def movie_price(jd):  
    jl = jd['data']['list']  
    for i,jls in enumerate(jl,1):  
        name = jls['movieName']#影片名  
        try:  
            days = jls['releaseInfo'][2]#上映時間  
        except:  
            days = '點映'  
        totalmoney = jls['sumBoxInfo']#影片總票房  
        mainmoney = jls['boxInfo']#綜合票房  
        moneyrate = jls['boxRate']#票房占比  
        shownumber = jls['showInfo']#排片場次  
        showrate = jls['showRate']#排片占比  
        people = jls['avgShowView']#場均人次  
        showpeople = jls['avgSeatView']#上座率  
          
        yield i,name,days,totalmoney,mainmoney,moneyrate,shownumber,showrate,people,showpeople  
  
#創(chuàng)建文件夾  
def makeasocket(path):  
    if not os.path.exists(path):  
        os.makedirs(path)  
      
#保存到csv中  
def save_to_csv(path,date,alltime,moeny,movie_price):  
    with open(path + '貓眼電影專業(yè)版實時數(shù)據(jù).csv','a') as f:  
        writer = csv.writer(f)  
        writer.writerow(['日期',date,'','時間',alltime,'','總票房',moeny])  
        writer.writerow(['排名','影片名','上映時間(/天)','影片總票房','綜合票房(/萬)','票房占比(%)','排片場次','排片占比(%)','場均人次','上座率(%)'])  
        for movie in movie_price:  
            writer.writerow([movie[0],movie[1],movie[2],movie[3],movie[4],movie[5],movie[6],movie[7],movie[8],movie[9]])  
  
  
  
def main():  
    path = 'D:/數(shù)據(jù)/貓眼電影專業(yè)版數(shù)據(jù)/'  
    makeasocket(path)  
    while True:    
        text = get_to_link()  
        jd = json_text(text)  
        date,alltime,moeny = date_time(jd)  
        print('***'*46)  
        print('{:>10s}:{}{:>10s}:{}{:>10s}:{}'.format('日期',date,'時間',alltime,'總票房',moeny))  
        print('---'*46)  
        print('{:^6s}{:^20s}{:^10s}{:^12s}{:^12s}{:^10s}{:^10s}{:^6s}{:^6s}{:^6s}'.format('排名','影片名','上映時間(/天)','影片總票房(/億)','綜合票房(/萬)','票房占比(%)','排片場次','排片占比(%)','場均人次','上座率(%)'))  
        print('---'*46)  
        for movie in movie_price(jd):  
            print('{:^6d}{:^20s}{:^20s}{:^20s}{:^12s}{:^11s}{:^13s}{:^10s}{:^10s}{:^10s}'.format(movie[0],movie[1],movie[2],movie[3],movie[4],movie[5],movie[6],movie[7],movie[8],movie[9]))  
            print('---'*46)  
        save_to_csv(path,date,alltime,moeny,movie_price(jd))  
        time.sleep(3)  
  
if __name__ == "__main__":  
    main()  
  
  
Contact GitHub API Training Shop Blog About  
? 2017 GitHub, Inc. Terms Privacy Security Statu  

github代碼參考:https://github.com/zhuxunyu/cinema-/blob/master/%E7%8C%AB%E7%9C%BC%E7%94%B5%E5%BD%B1%E5%AE%9E%E6%97%B6%E7%88%AC%E5%8F%96.py

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前端知識體系http://www.cnblogs.com/sb19871023/p/3894452.html 前端...
    秋風(fēng)喵閱讀 12,756評論 7 163
  • 七弦聲聲慢關(guān)情, 巖心自許兩生花。 極愿人間莫離別, 夜月迢遞照吾家。
    柒夜閱讀 316評論 0 1
  • 在盛夏,來自窗外的 蟬鳴又開始催促。 在你踟躇的腳下, 一切都凋謝得匆忙。 寬碩的葉子已經(jīng)褪去了青澀, 仍然溫柔地...
    安度無恙年華閱讀 256評論 3 3
  • 謝謝你帶給我的一切 記得最初見你還是在禮堂,那時我們高一參加活動,我坐在你身旁。回想起腦海那次也許是我記憶中第...
    然然的小饅頭閱讀 253評論 0 0

友情鏈接更多精彩內(nèi)容