本文將為大家詳細(xì)介紹“Python怎樣實(shí)現(xiàn)一鍵提取陰陽師原畫”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會更新不同的知識點(diǎn),希望這篇“Python怎樣實(shí)現(xiàn)一鍵提取陰陽師原畫”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。
成都創(chuàng)新互聯(lián)專注于魯?shù)槠髽I(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站制作。魯?shù)榫W(wǎng)站建設(shè)公司,為魯?shù)榈鹊貐^(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
xpath–簡單的爬蟲實(shí)例–提取陰陽師原畫壁紙
文章目錄
1、分析網(wǎng)頁
2、完整代碼實(shí)現(xiàn)
一、前言
二、需要用到的庫
三、實(shí)現(xiàn)過程
四、合成視頻
一、前言
很多人都玩過陰陽師吧,別的不談,陰陽師的原畫制作的那是相當(dāng)?shù)鼐?xì),閑暇之余,用幾行簡單的代碼爬取下來,豈不美哉?
二、需要用到的庫
import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os
沒用安裝庫的小伙伴,可以看一下我之前寫的這篇文章,里面有很多國內(nèi)源的鏈接,方便你的下載。
傳送門
三、實(shí)現(xiàn)過程
首先打開官網(wǎng),官網(wǎng)傳送門,點(diǎn)擊“視聽中心”里面的“原畫壁紙”
進(jìn)入到原畫壁紙頁面后,選擇一個壁紙,進(jìn)行檢查。
我發(fā)現(xiàn),對于不同的分辨率,有不同的鏈接對應(yīng),而我檢查的這張圖有六個分辨率,是不是所有的圖片都是這樣呢?
后來我發(fā)現(xiàn),并不是!
如上所示,有個圖甚至只有四個分辨率,并且,每張圖的分辨率的位置對應(yīng)還不一致,那該怎么提取原畫鏈接呢?
A:利用xpath,根據(jù)文本內(nèi)容提取節(jié)點(diǎn)
a = lists[i].xpath('./p/p/a[contains(text(), "1920x1080")]')[0]
這樣就能提取到分辨率為“1920x1080”的a節(jié)點(diǎn)了。
Q:lists[i]
是什么?
A:看了完整代碼就知道了。
import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os path = 'D:/陰陽師'if not os.path.exists(path): os.mkdir(path)# 隨機(jī)產(chǎn)生請求頭ua = UserAgent(verify_ssl=False, path='fake_useragent.json')url = 'https://yys.163.com/media/picture.html' # 原畫壁紙的頁面鏈接response = requests.get(url=url).text html = etree.HTML(response)lists = html.xpath('/html/body/p[2]/p[3]/p[1]/p[3]/p[2]/p')num = 1for i in range(len(lists)): a = lists[i].xpath('./p/p/a[contains(text(), "1920x1080")]')[0] # 根據(jù)文本內(nèi)容鎖定節(jié)點(diǎn)a image_url = a.xpath('./@href')[0] # 獲取原畫壁紙鏈接 image_data = requests.get(url=image_url).content image_name = '{}.jpg'.format(num) # 給每張圖片命名 save_path = path + '/' + image_name # 圖片的保存地址 with open(save_path, 'wb') as f: f.write(image_data) print(image_name, '=======================>下載成功?。?!') f.close() num += 1
運(yùn)行結(jié)果如下:
四、合成視頻
通過合成視頻,可以慢慢欣賞爬取下來的原畫,舒服極了。
代碼如下:
import cv2import os# 輸出視頻的保存路徑video_dir = 'D:/yinyangshi/result.mp4'# 幀率fps = 0.2# 圖片尺寸img_size = (1920, 1080)fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V') # opencv3.0 mp4會有警告但可以播放videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)img_files = os.listdir('D:/yinyangshi/')for i in range(1, 397): img_path = 'D:/yinyangshi/tupian/' + '{}.jpg'.format(i) frame = cv2.imread(img_path) frame = cv2.resize(frame, img_size) # 生成視頻 圖片尺寸和設(shè)定尺寸相同 videoWriter.write(frame) # 寫進(jìn)視頻里 print(f'======== 按照視頻順序第{i}張圖片合進(jìn)視頻 ========')videoWriter.release() # 釋放資源
注意:合成視頻時,圖片的保存路徑和視頻的生成路徑不能包含中文?。?!
如果你能讀到這里,小編希望你對“Python怎樣實(shí)現(xiàn)一鍵提取陰陽師原畫”這一關(guān)鍵問題有了從實(shí)踐層面最深刻的體會,具體使用情況還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!