<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
有時候覺得電影真是人類有史以來最偉大的發明,我喜歡看電影,看電影可以讓我們增長見聞,學習知識。從某種角度上而言,電影憑藉自身獨有的魅力大大延長了人類的”壽命”。
一部電影如同一本故事書,我可以沉迷到其中,來的一個新的世界,跟著電影主角去經歷去感悟。而好的電影是需要慢慢品嚐的,不僅提供了各種視覺刺激和情感體驗,更能帶來思考點,也讓我可以懂得在現實生活中窮盡一生也無法明白的道理。電影比書本更直接、更有趣、更精彩。
好的電影可以在潛移默化中塑造我們的三觀,在電影中我們可以獲得平靜、滿足和溫和,學會堅強、勇氣和努力。電影延展了無聊單調、枯燥又稀鬆平常的生活,讓我可以在對現實生活厭倦或失望時至少有一個地方可以逃離。
正因為電影有諸多好處,並且比書本和說教能更好的塑造三觀,因此,家長們可以陪同小孩看電影,鼓勵孩子從電影中學會堅強和勇敢等優良品質。
既然要看看電影,就要去看優秀的作品,時光網是一個電影各方面素材都比較全面的網站,本次的專案就是要從該網站上獲取到指定年份的所有電影資料,並匯出成excel表格以供參考。
注意:請勿使用該技術獲取網路上敏感、隱私、非公開等資料。電影推薦(愛情類):
假如愛有天意:緣,妙不可言,或許一切早已註定。
靈魂擺渡·黃泉:為情甘願赴死,為愛執守千年。
你的名字:世上所有的相遇都是久別重逢。電影推薦(親子類):
機器人總動員:孩子看到的是友情,大人看到的是愛情。很有愛的一部動畫片。
尋夢環遊記:死亡並不是終點,被人忘卻才是真正的死亡
。電影推薦(懸疑類):
小島驚魂
異次元駭客
恐怖遊輪
requests:網路資料請求並獲取,安裝方式:pip install requests
threading:多執行緒處理(資料量比較大),Python自帶庫,無需安裝。
json:資料處理,Python自帶庫,無需安裝。
pandas:將資料匯出成excel表格,安裝方式:pip install pandas
1、先通過requests庫,通過時光網自帶的電影資料API介面,獲取到指定的電影資料。
2、將獲取到的資料經過簡單的加工,通過pandas庫存入到excel表格中。
# Encoding: utf-8 # Author: furongbing # Date: 2021-11-19 20:54 # Project name: FrbPythonFiles # IDE: PyCharm # File name: Mtime import requests import pandas as pd from threading import Thread import time import json # 模組說明: """ 從時光網上按年代獲取指定年份電影的資料 """ # 更新紀錄檔: """ 1、2021-11-19: a、完成初版 """ # 待修改: """ """ # 請求頭資料 headers = {"Accept": "application/json, text/plain, */*", "Accept-Encoding": "gzip, deflate", 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': 'keep-alive', 'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': '_tt_=FB8A3FAD4704D42543B7EC121C2565AA; __utma=196937584.1082595229.1637326918.1637326918.1637326918.1; __utmz=196937584.1637326918.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); Hm_lvt_07aa95427da600fc217b1133c1e84e5b=1637241042,1637326637,1637374129; Hm_lpvt_07aa95427da600fc217b1133c1e84e5b=1637374170', 'Host': 'front-gateway.mtime.com', 'Origin': 'http://film.mtime.com', 'Referer': 'http://film.mtime.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36' } pagesize = 20 # todo 獲取的每頁資料條數,一般建議成預設的20就可以了,設定的太大,每頁包含的資料量就大,某一條電影資料出錯會導致其它資料也被拋棄。 data = [] error = [] def get_data(p_year=1987): # 按照年份獲取當年度所有的電影資料 url = 'http://front-gateway.mtime.com/mtime-search/search/unionSearch2' # 請求的url params = {'year': p_year, 'pageSize': pagesize, 'pageIndex': 1, 'searchType': 0} # 請求的表單資料 # 獲取當年度所有的電影的數量,繼而計算要獲取多少頁 try: r = requests.get(url=url, params=params, headers=headers, timeout=10) r.encoding = r.apparent_encoding all_data = json.loads(r.text) moviesCount = all_data['data']['moviesCount'] pages = round(moviesCount / pagesize) except Exception: moviesCount = 1000 pages = round(moviesCount / pagesize) # 定義變數 來源 = '時光網' 年代 = p_year ID, 中文名, 英文名, 型別, 形式, 海報url, 評分, 導演, 主演, 詳情, 可播放, 國家地區, 上映日期, 片長, 票房, 觀看日期 = [''] * 16 for page in range(pages): # todo 一共要獲取多少頁 if page % 10 == 0: # 每10頁輸出一次進度 print(f'已完成 {100 * page / pages:.2f}%') pageindex = page + 1 params = {'year': p_year, 'pageSize': pagesize, 'pageIndex': pageindex, 'searchType': 0} # 請求的表單資料 try: # 獲取指定頁的電影資料 r = requests.get(url=url, params=params, headers=headers, timeout=10) r.encoding = r.apparent_encoding all_data = json.loads(r.text) movies = all_data['data']['movies'] # 獲取電影具體資訊 for movie in movies: ID = movie['movieId'] 中文名 = movie['name'] 英文名 = movie['nameEn'] 型別 = movie['movieType'] 形式 = movie['movieContentType'] 海報url = movie['img'] 其它譯名 = movie['titleOthersCn'] 評分 = movie['rating'] 導演 = movie['directors'] 主演 = movie['actors'] 詳情 = movie['href'] 可播放 = movie['canPlay'] 國家地區 = movie['locationName'] 上映日期 = movie['realTime'] 片長 = movie['length'] info = [來源, 年代, ID, 中文名, 英文名, 型別, 形式, 海報url, 其它譯名, 評分, 導演, 主演, 詳情, 可播放, 國家地區, 上映日期, 片長, 票房, 觀看日期] data.append(info) except Exception as err: er_year, er_pagesize, er_pageindex, er_msg = p_year, pagesize, pageindex, err error.append([er_year, er_pagesize, er_pageindex, er_msg]) print(f"出錯啦,出錯年份:{p_year},pagesize:{pagesize},page:{pageindex},出錯原因:{er_msg}") continue if __name__ == '__main__': begin = time.perf_counter() threads = [] for year in range(2020, 2021): # todo 此處可以自定義要獲取的年份 t = Thread(target=get_data, args=(year,)) threads.append(t) t.start() for t in threads: t.join() with open('error.txt', 'w', encoding='utf-8') as f: f.write(str(error)) data.insert(0, ['來源', '年代', 'ID', '中文名', '英文名', '型別', '形式', '海報url', '其它譯名', '評分', '導演', '主演', '詳情', '可播放', '國家地區', '上映日期', '片長', '票房', '觀看日期']) df = pd.DataFrame(data) df.to_excel(excel_writer=r'film.xlsx', sheet_name='sheet1', index=None, header=False) # todo film.xlsx為最後儲存的檔名 end = time.perf_counter() runtime = end - begin print(f'執行時長:{runtime:.3f}秒。')
輸出結果:
已完成 0.00%
已完成 11.63%
已完成 23.26%
已完成 34.88%
已完成 46.51%
已完成 58.14%
已完成 69.77%
已完成 81.40%
已完成 93.02%
執行時長:27.906秒。
雖然範例中獲取的是2020年的資料,但是由於程式碼中採用的是多執行緒,所以如果是獲取一段時間的資料時耗費的時間也和這個差不多。
最後儲存到excel中的資料如下:
從自動化辦公到智慧化辦公
到此這篇關於Python獲取時光網電影資料的文章就介紹到這了,更多相關Python時光網電影內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45