質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

697閲覧

Pythonを使って画像をDLしようとしたのですが、途中でエラーが発生してしまいます。

usaberu_00

総合スコア5

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/05 14:43

編集2020/03/05 15:08

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ファイル名・フォルダ名に¥,/,:,*,?,",<,>,|は使用できません。
上記文字が含まれている場合は全角文字に置き換える等の処理が必要です。
Naming Files, Paths, and Namespaces

投稿2020/03/05 15:20

編集2020/03/05 15:30
SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usaberu_00

2020/03/08 12:23

イラストのタイトルに""が入っていたからエラーが起きたのですね。 全角に置き換えるようにやってみます。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問