本文將為大家詳細介紹“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”,內(nèi)容步驟清晰詳細,細節(jié)處理妥當,而小編每天都會更新不同的知識點,希望這篇“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。
成都創(chuàng)新互聯(lián)專注于魯?shù)槠髽I(yè)網(wǎng)站建設,響應式網(wǎng)站,商城網(wǎng)站制作。魯?shù)榫W(wǎng)站建設公司,為魯?shù)榈鹊貐^(qū)提供建站服務。全流程按需策劃,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。
xpath–簡單的爬蟲實例–提取陰陽師原畫壁紙
文章目錄
1、分析網(wǎng)頁
2、完整代碼實現(xiàn)
一、前言
二、需要用到的庫
三、實現(xiàn)過程
四、合成視頻
一、前言
很多人都玩過陰陽師吧,別的不談,陰陽師的原畫制作的那是相當?shù)鼐?,閑暇之余,用幾行簡單的代碼爬取下來,豈不美哉?
二、需要用到的庫
import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os
沒用安裝庫的小伙伴,可以看一下我之前寫的這篇文章,里面有很多國內(nèi)源的鏈接,方便你的下載。
傳送門
三、實現(xiàn)過程
首先打開官網(wǎng),官網(wǎng)傳送門,點擊“視聽中心”里面的“原畫壁紙”
進入到原畫壁紙頁面后,選擇一個壁紙,進行檢查。
我發(fā)現(xiàn),對于不同的分辨率,有不同的鏈接對應,而我檢查的這張圖有六個分辨率,是不是所有的圖片都是這樣呢?
后來我發(fā)現(xiàn),并不是!
如上所示,有個圖甚至只有四個分辨率,并且,每張圖的分辨率的位置對應還不一致,那該怎么提取原畫鏈接呢?
A:利用xpath,根據(jù)文本內(nèi)容提取節(jié)點
a = lists[i].xpath('./p/p/a[contains(text(), "1920x1080")]')[0]
這樣就能提取到分辨率為“1920x1080”的a節(jié)點了。
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)# 隨機產(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é)點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, '=======================>下載成功!?。?#39;) f.close() num += 1
運行結果如下:
四、合成視頻
通過合成視頻,可以慢慢欣賞爬取下來的原畫,舒服極了。
代碼如下:
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) # 生成視頻 圖片尺寸和設定尺寸相同 videoWriter.write(frame) # 寫進視頻里 print(f'======== 按照視頻順序第{i}張圖片合進視頻 ========')videoWriter.release() # 釋放資源
注意:合成視頻時,圖片的保存路徑和視頻的生成路徑不能包含中文?。?!
如果你能讀到這里,小編希望你對“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”這一關鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領會,如果想閱讀更多相關內(nèi)容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標題:Python怎樣實現(xiàn)一鍵提取陰陽師原畫
網(wǎng)站路徑:http://www.rwnh.cn/article48/jdcohp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站制作、電子商務、定制網(wǎng)站、網(wǎng)站設計、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)