前提・実現したいこと
Pythonを使ってpixivでフォローした人のイラストを一括保存しようとした。
流れ:フォローしている人のpixivIDを入力→画像DL
発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\Users\〇\Desktop\pixiv_get_picture\get_illustrations.py", line 70, in <module> mkdirExceptExist(saving_direcory_path + "manga/" + work_title) #保存用フォルダがない場合は生成 File "C:\Users\〇\Desktop\pixiv_get_picture\get_illustrations.py", line 34, in <lambda> mkdirExceptExist = lambda path:"" if os.path.exists(path) else os.mkdir(path) OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。: './pixiv_images/Belko/manga/"お仕事情報"天界のシェフ オーガスタ'
該当のソースコード
Python
1#coding: utf-8 2 3from pixivpy3 import * 4import json 5from time import sleep 6import os 7 8#ログイン処理 9f = open("client.json","r") 10client_info = json.load(f) 11f.close() 12api = PixivAPI() 13api.login(client_info["pixiv_id"],client_info["password"]) 14aapi = AppPixivAPI() 15aapi.login(client_info["pixiv_id"],client_info["password"]) 16 17#入力された絵師IDから絵師情報を取得 18illustrator_pixiv_id = int(input("Type illustrator pixiv id number:\n>>>")) 19 20#ユーザ情報(作品数、絵師名)を取得 21user_info_json = aapi.user_detail(illustrator_pixiv_id) 22total_illusts = user_info_json.profile.total_illusts 23total_manga = user_info_json.profile.total_manga 24illustrator_name = user_info_json.user.name 25 26#イラスト情報を取得(とりあえず300作品取得する場合) 27works_info = api.users_works(illustrator_pixiv_id,page=1,per_page=300) 28 29# # 絞り込み条件 30#target_tag = "target_tag" 31#lower_bookmarks = 0 32 33#渡されたディレクトリが存在しない場合に作成するLambda関数 34mkdirExceptExist = lambda path: "" if os.path.exists(path) else os.mkdir(path) 35 36mkdirExceptExist(".\pixiv_images\")#保存用フォルダがない場合は生成 37 38saving_direcory_path = ".\pixiv_images\" + illustrator_name + "\" 39mkdirExceptExist(saving_direcory_path) #保存用フォルダがない場合は生成 40 41separator = "============================================================" 42print("Artist: %s" % illustrator_name) 43print("Works: %d" % works_info.pagination.total) 44print(separator) 45 46for i, work_info in enumerate(works_info.response): 47 48 work_type = "manga" if work_info.is_manga else "illust" 49 50 mkdirExceptExist(saving_direcory_path + work_type) #保存用フォルダがない場合は生成 51 52 # # DL画像を絞り込む場合 53 # if target_tag not in work_info.tags: #タグによる絞り込み 54 # continue 55 # works_bookmarks = work_info.stats.favorited_count.private + work_info.stats.favorited_count.public 56 # if works_bookmarks < lower_bookmarks: #ブックマーク数による絞り込み 57 # continue 58 59 #ダウンロード 60 work_title = work_info.title.replace("/","-") #'/'はPathとして扱われるため回避 61 62 print("Procedure: %d/%d" % (i+1,works_info.pagination.total)) 63 print("Title: %s" % work_title) 64 print("URL: %s" % work_info.image_urls.large) 65 print("Caption: %s" % work_info.caption) 66 print(separator) 67 68 #漫画の場合 69 if work_info.is_manga: 70 mkdirExceptExist(saving_direcory_path + "manga/" + work_title) #保存用フォルダがない場合は生成 71 72 manga_info = api.works(work_info.id) 73 for page_no in range(0,manga_info.response[0].page_count): 74 page_info = manga_info.response[0].metadata.pages[page_no] 75 num = str(page_no) if len(str(page_no)) > 1 else "0" + str(page_no) 76 aapi.download(page_info.image_urls.large, path=saving_direcory_path + "manga/" + work_title,name=num+".jpg") 77 sleep(3) 78 #イラストの場合 79else: 80 aapi.download(work_info.image_urls.large,path=saving_direcory_path + "illust",name=work_title+".jpg" ) 81 sleep(3) 82 83print("\nThat\"s all.")
###実行したこと
プログラム自体はエラーをコピーして探したのですがこれといった解決法がわかない状態です。
違うイラストレーターさんで実行したら成功しました。
補足情報(実行環境)
・Windows 10 Pro
・python 3.8
・pixivpy 3.5.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/08 12:23