Maison > développement back-end > Tutoriel Python > 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
Libérer: 2021-02-26 10:29:05
avant
2387 Les gens l'ont consulté

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
Copier après la connexion

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]
Copier après la connexion

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
Copier après la connexion

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()   # 释放资源
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal