溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python怎樣實現(xiàn)一鍵提取陰陽師原畫

發(fā)布時間:2021-02-26 10:56:23 來源:億速云 閱讀:226 作者:清風(fēng) 欄目:編程語言

本文將為大家詳細(xì)介紹“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會更新不同的知識點,希望這篇“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。

xpath–簡單的爬蟲實例–提取陰陽師原畫壁紙

文章目錄



    • 1、分析網(wǎng)頁

    • 2、完整代碼實現(xiàn)

    • 一、前言

    • 二、需要用到的庫

    • 三、實現(xiàn)過程


    • 四、合成視頻

一、前言

很多人都玩過陰陽師吧,別的不談,陰陽師的原畫制作的那是相當(dāng)?shù)鼐?xì),閑暇之余,用幾行簡單的代碼爬取下來,豈不美哉?

二、需要用到的庫

import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os

沒用安裝庫的小伙伴,可以看一下我之前寫的這篇文章,里面有很多國內(nèi)源的鏈接,方便你的下載。

傳送門

三、實現(xiàn)過程

1、分析網(wǎng)頁

首先打開官網(wǎng),官網(wǎng)傳送門,點擊“視聽中心”里面的“原畫壁紙

進入到原畫壁紙頁面后,選擇一個壁紙,進行檢查。

Python怎樣實現(xiàn)一鍵提取陰陽師原畫
我發(fā)現(xiàn),對于不同的分辨率,有不同的鏈接對應(yīng),而我檢查的這張圖有六個分辨率,是不是所有的圖片都是這樣呢?
后來我發(fā)現(xiàn),并不是!
Python怎樣實現(xiàn)一鍵提取陰陽師原畫
如上所示,有個圖甚至只有四個分辨率,并且,每張圖的分辨率的位置對應(yīng)還不一致,那該怎么提取原畫鏈接呢?

A:利用xpath,根據(jù)文本內(nèi)容提取節(jié)點

a = lists[i].xpath('./p/p/a[contains(text(), "1920x1080")]')[0]

這樣就能提取到分辨率為“1920x1080”的a節(jié)點了。

Q:lists[i]是什么?
A:看了完整代碼就知道了。

2、完整代碼實現(xiàn)
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, '=======================>下載成功?。?!')
        f.close()
        num += 1

運行結(jié)果如下:
Python怎樣實現(xiàn)一鍵提取陰陽師原畫
Python怎樣實現(xiàn)一鍵提取陰陽師原畫

四、合成視頻

通過合成視頻,可以慢慢欣賞爬取下來的原畫,舒服極了。

代碼如下:

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)      # 寫進視頻里
    print(f'======== 按照視頻順序第{i}張圖片合進視頻 ========')videoWriter.release()   # 釋放資源

注意:合成視頻時,圖片的保存路徑和視頻的生成路徑不能包含中文?。?!

如果你能讀到這里,小編希望你對“Python怎樣實現(xiàn)一鍵提取陰陽師原畫”這一關(guān)鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI