Maison  >  Article  >  développement back-end  >  Python implémente simplement une méthode en un clic pour extraire les peintures originales d'Onmyoji

Python implémente simplement une méthode en un clic pour extraire les peintures originales d'Onmyoji

coldplay.xixi
coldplay.xixiavant
2021-02-26 10:29:052340parcourir

Python implémente simplement une méthode en un clic pour extraire les peintures originales d'Onmyoji

Recommandations d'apprentissage gratuites : Tutoriel vidéo Python

xpath – exemple de robot simple – extraire le fond d'écran original d'Onmyoji

Répertoire d'articles

    • 1. Préface
    • 2. Bibliothèques nécessaires
    • 3. Processus de mise en œuvre
        • 1. Analyser les pages Web
        • 2. Implémentation complète du code
    • 4. Vidéo synthétique

1.

Beaucoup de gens ont joué à Onmyoji. Entre autres choses, les peintures originales d'Onmyoji sont assez détaillées. Pendant mon temps libre, je peux les explorer avec quelques lignes de code simples. c'est beau si tu l'enlèves ?

2. Les bibliothèques qui doivent être utilisées

import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os

Amis qui n'ont pas besoin d'installer des bibliothèques, vous pouvez jeter un œil à cet article que j'ai écrit auparavant, qui contient de nombreuses sources nationales sont liées pour faciliter votre téléchargement.

Portail

3. Processus de mise en œuvre

1. Analysez la page Web

Ouvrez d'abord le site officiel, le portail du site officiel. , cliquez sur " "Fond d'écran de peinture originale" dans le Centre audiovisuel"

Après avoir accédé à la page Fond d'écran de peinture originale, sélectionnez un fond d'écran et vérifiez-le.

Python implémente simplement une méthode en un clic pour extraire les peintures originales dOnmyoji
J'ai constaté qu'il existe différents liens correspondant à différentes résolutions, et l'image que j'ai vérifiée a six résolutions. Toutes les images sont-elles comme celle-ci ?
Plus tard, j'ai découvert que ce n'était pas le cas !
Python implémente simplement une méthode en un clic pour extraire les peintures originales dOnmyoji
Comme indiqué ci-dessus, une image n'a même que quatre résolutions, et la résolution et la position de chaque image ne sont pas cohérentes. Alors, comment extraire le lien de la peinture originale ?

A : Utilisez XPath pour extraire des nœuds en fonction du contenu du texte

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

De cette façon, un nœud avec une résolution de "1920x1080" peut être extrait.

Q : Qu'est-ce que lists[i] ?
R : Vous le saurez après avoir lu le code complet.

2. Implémentation complète du code

import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport os

path = 'D:/阴阳师'if not os.path.exists(path):
    os.mkdir(path)# 随机产生请求头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]  # 根据文本内容锁定节点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

Les résultats en cours sont les suivants :
Python implémente simplement une méthode en un clic pour extraire les peintures originales dOnmyoji
Python implémente simplement une méthode en un clic pour extraire les peintures originales dOnmyoji

4.

En synthétisant la vidéo, vous pouvez lentement profiter de la peinture originale rampée, ce qui est très confortable.

Le code est le suivant :

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()   # 释放资源

Remarque : lors de la composition d'une vidéo, le chemin de sauvegarde de l'image et le chemin de génération de la vidéo ne peuvent pas contenir de caractères chinois ! ! !

Une collection de peintures originales d'Onmyoji

Recommandations d'apprentissage gratuites associées : Tutoriel Python(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer