Recherche de balises pixiv et enregistrement d'illustrations à l'aide de Python

introduction

Je voulais voir beaucoup d'illustrations pixiv de Python. Il semble y avoir peu d'informations japonaises sur pixivpy, je vais donc les laisser comme mémo.

environnement

Windows10 Python 3.8 pixivpy 3.5.8 : https://github.com/upbit/pixivpy

Préparation

Préparer pixivpy Depuis l'invite de commande

pip install pixivpy

Courir

code

tagsearch_pixivpy.py


from pixivpy3 import PixivAPI
from pixivpy3 import AppPixivAPI

import json
import os
from time import sleep

def login(id, password):
    api = PixivAPI()
    api.login(id, password)
    return api

def search_and_save(apilogin, searchtag, min_score, range_num, directory):
    api = apilogin
    aapi = AppPixivAPI()

    saving_dir_path = os.path.join(directory, searchtag)
    if not os.path.exists(saving_dir_path):
        os.mkdir(saving_dir_path)

    for page in range(1, range_num + 1):
        json_result = api.search_works(searchtag, page=page, mode='tag')
        illust_len = len(json_result.response)

        for i in range(0, illust_len):
            illust = json_result.response[i]
            score = illust.stats.score

            if score <= min_score:
                continue
            else:
                print("Dessin animé:" + str(illust.page_count) + "page") if illust.is_manga else print("Une illustration")
                if illust.is_manga:
                    print(">>> title:", illust.title)
                    manga_info = api.works(illust.id)
                    for page_no in range(0, manga_info.response[0].page_count):
                        page_info = manga_info.response[0].metadata.pages[page_no]
                        aapi.download(page_info.image_urls.large, path=saving_dir_path)
                        sleep(1)
                else:
                    print(">>> title:", illust.title)
                    aapi.download(illust.image_urls.large, path=saving_dir_path)
                    sleep(1)

def main():
    searchtag = "Rechercher une balise"  #Rechercher une baliseを入力。半角スペースで分けることで複数タグ検索可能
    min_score = 2000    #DL uniquement pour les illustrations au-dessus de ce score
    range_num = 1   #Recherchez jusqu'à la page avec cette valeur. 30 feuilles par 1p
    directory = 'Répertoire de destination'  #Crée un dossier avec le nom de la balise de recherche sous le répertoire spécifié et l'enregistre là-bas.

    apilogin  = login("Nom d'utilisateur", "mot de passe") #Nom d'utilisateurとmot de passe入力

    search_and_save(apilogin, searchtag, min_score, range_num, directory)

if __name__ == '__main__':
	main()

Vous pouvez rechercher comme vous le souhaitez en modifiant les variables sous la fonction principale. Il prend également en charge la publication au format dessin animé (un format avec plusieurs illustrations dans un seul titre).

idée

--Je souhaite enregistrer directement sur Google Drive --Prenez le top 20% des illustrations recherchées par ordre de score

Site de référence

Tous ont été très utiles dans leurs articles polis.

Recommended Posts

Recherche de balises pixiv et enregistrement d'illustrations à l'aide de Python
Paramètres initiaux pour l'utilisation de Python3.8 et pip sur CentOS8
Squelettes extensibles pour Vim utilisant Python, Click et Jinja2
Lire et écrire des balises NFC avec python en utilisant PaSoRi
[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)
Authentification à l'aide de l'authentification des utilisateurs tweepy et de l'authentification d'application (Python)
[TouchDesigner] Conseils pour la déclaration par python
Clustering et visualisation à l'aide de Python et CytoScape
[Python] Raison du remplacement à l'aide de super ()
[Python] Quatre-vingt-dix-neuf tables utilisant des instructions for
Vider, restaurer et rechercher des requêtes d'instances de classe Python à l'aide de mongodb
Créer une lecture de feuille de notes avec Python OpenCV (Conseils pour bien lire)
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
De Python à l'utilisation de MeCab (et CaboCha)
Environnement de développement Python pour macOS utilisant venv 2016
[50 comptes] Transmission de clé à l'aide de Python pour Windows
Utilisation de Python et MeCab avec Azure Databricks
[python, multitraitement] Comportement des exceptions lors de l'utilisation du multitraitement
6 bibliothèques Python pour un développement et un débogage plus rapides
Conseils pour utiliser python + caffe avec TSUBAME
Implémentation et description à l'aide de XGBoost pour les débutants
Remarques sur l'utilisation de python (pydev) avec eclipse
Scraping à l'aide de lxml et enregistrement sur MySQL
J'utilise tox et Python 3.3 avec Travis-CI
SublimeText2 et SublimeLinter - Vérification de la syntaxe pour Python3 -
Élément de note Python efficace 12 Évitez d'utiliser des blocs else après les boucles for et while
Estimation de l'orientation de la tête avec Python et OpenCV + dlib
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai essayé le web scraping en utilisant python et sélénium
Raisonnement causal et recherche causale par Python (pour les débutants)
(Windows) Causes et solutions de contournement pour UnicodeEncodeError dans Python 3
Remarques sur l'installation de Python3 et l'utilisation de pip sous Windows7
Développer et déployer des API Python à l'aide de Kubernetes et Docker
Flux de développement Python avec Poetry, Git et Docker
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Pandas Python: recherchez DataFrame à l'aide d'expressions régulières
Obtenir des informations sur les notes à l'aide du SDK Evernote pour Python 3
Créer une carte Web en utilisant Python et GDAL
Recherche affinée des valeurs de race Pokemon à l'aide de Python
[Hikari-Python] Chapitre 09-02 Classes (Création et instanciation de classes)
[Python / Chrome] Paramètres de base et opérations de scraping
[Python3] Génération automatique de texte avec janome et markovify
Fichiers PDF et sites utiles pour apprendre Python 3
Essayez d'utiliser tensorflow ① Créez un environnement python et introduisez tensorflow
Faisons un module pour Python en utilisant SWIG
Essayez d'utiliser l'API ChatWork et l'API Qiita en Python
Installer Python et les bibliothèques pour Python sur MacOS Catalina
Installez PyCall sur Raspberry PI et essayez d'utiliser la bibliothèque GPIO pour Python de Ruby