python ファイル実行中途中停止する。
csvファイルに記載のURLを読み取り、それを次々にダウンロードしていくプログラムです。
先月までは調子よくダウンロードできていたのですが、先日ひさしぶりにプログラムを実行してみると、途中でエラーもなく動かなくなってしまいました。
なお、友人の作成したプログラムなので、自分にはわからないこともあります。
また、停止するタイミングはプログラム実行ごとにばらばらです。
発生している問題・エラーメッセージ
エラーメッセージなし
Traceback (most recent call last): File "/Users/username/Downloads/image_downloader.py", line 25, in <module> request = urllib.request.Request( File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 328, in __init__ self.full_url = url File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 354, in full_url self._parse() File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 383, in _parse raise ValueError("unknown url type: %r" % self.full_url) ValueError: unknown url type: 't'
該当のソースコード
import
1import sys 2import time 3import os 4import pandas as pd 5import cv2 6import traceback 7 8df = pd.read_csv('/Users/yonedakouki/banggood/img_ban.csv', 9 encoding='cp932', dtype=object) 10 11 12headers = { 13 "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"} 14for column_name, item in df.iteritems(): 15 16 if column_name == 'url' or '_1' or '_2' or '_3' or '_4' or '_5' or '_6' or '_7' or '_8' or '_9': 17 for index, row in df.iterrows(): 18 19 try: 20 url_separate = os.path.splitext(row[column_name]) 21 url_extension = url_separate[1].replace('URL', '') 22 url_extension = url_extension.replace('#Yosuke', '') 23 24 request = urllib.request.Request( 25 row[column_name], headers=headers) 26 try: 27 mem = urllib.request.urlopen(request).read() 28 # ファイルへの保存 29 # url_extension 30 x = row['code'] + column_name.replace('URL', '') + ".jpeg" 31 with open('/Users/yonedakouki/banggood/u/' + x, mode="wb") as f: 32 f.write(mem) 33 print(x) 34 35 if url_extension == ".gif": 36 print("!!!gif!!!") 37 else: 38 img = cv2.imread('/Users/yonedakouki/banggood/u/' + x) 39 img2 = cv2.resize(img, dsize=None, fx=0.5, fy=0.5) 40 cv2.imwrite( 41 '/Users/yonedakouki/banggood/u/' + x, img2) 42 43 except urllib.error.HTTPError: 44 print("!!! HTTP エラー") 45 traceback.print_exc() 46 except Exception as err: 47 print("!!! HTTP エラー以外のエラー") 48 traceback.print_exc() 49 time.sleep(1) 50 51 except Exception as err: 52 print("!!! URL 関連のエラー") 53 print( 54 "CSVに定義されている元のURL[" + row[column_name] + "]に問題があるようです。スキップします。") 55 56 else: 57 print() 58 59f.close() 60print("正常に終了しました。") 61 62 63```ここに言語名を入力 64python 65 66### 試したこと 67 68python update 2.7.1→3.9.0へ 69pandas downgrade 0.24.2へ 70 71エラーログ確認 72!!! URL 関連のエラー 73Traceback (most recent call last): 74File "/Users/username/Downloads/image_downloader.py", line 25, in <module> 75request = urllib.request.Request( 76File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 328, in __init__ 77self.full_url = url 78File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 354, in full_url 79self._parse() 80File "/Users/username/.pyenv/versions/3.8.0/lib/python3.8/urllib/request.py", line 383, in _parse 81raise ValueError("unknown url type: %r" % self.full_url) 82ValueError: unknown url type: 't' 83 84>>>URLが記載されているcsvファイルを確認すると、URLではなく”t”のみ記載されたセルがあった 85 →”t”を削除してもプログラムは停止する。 86 87>>>上記エラーが出ても、すぐには停止せず、数枚画像をダウンロードをしてから停止した。 88>>>上記エラーが出ずに停止する場合もある。 89 90 91### 補足情報(FW/ツールのバージョンなど) 92python 2.7 → 3.9.0へupdate
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/17 06:19
退会済みユーザー
2021/04/17 06:49 編集
2021/04/17 07:47
退会済みユーザー
2021/04/17 09:14
2021/04/17 09:45
2021/04/17 10:01
退会済みユーザー
2021/04/17 15:27 編集
2021/04/18 01:23 編集
退会済みユーザー
2021/04/18 01:38
2021/04/18 01:54
退会済みユーザー
2021/04/18 04:45 編集