1

これをコーディングして、いくつかのWebサイトをダウンロードします。しかし、エラーなしで実行することはできません

ページはダウンロードできますが、「ダウンロードが完了しました」と出力される代わりに、以下のエラーが出力されます。

Traceback (most recent call last):
  File "F:\Copy\Desktop\gethanhan.py", line 28, in <module>
    con = urllib.urlopen(my_url[j]).read()
  File "C:\Python27\lib\urllib.py", line 87, in urlopen
    return opener.open(url)
  File "C:\Python27\lib\urllib.py", line 208, in open
    return getattr(self, name)(url)
  File "C:\Python27\lib\urllib.py", line 463, in open_file
    return self.open_local_file(url)
  File "C:\Python27\lib\urllib.py", line 477, in open_local_file
    raise IOError(e.errno, e.strerror, e.filename)
IOError: [Errno 2] : ''

何時間もテストします。しかし、私はまだ問題を見つけることができません。コードは次のとおりです。

......
#use a list which have urls to download url pages
j = 0
while j<50:
    con = urllib.urlopen(my_url[j]).read()
    filename = my_url[j][-26:]
    print 'Downloading'
    full_path ='F:/Copy/Desktop/kankan/' + str(j) + '.html'

    #ERROR appears in here:
    open(full_path,'w+').write(con) 
    j += 1
else:
    print 'Download finished'
4

2 に答える 2

0
File "C:\Python27\lib\urllib.py", line 87, in urlopen

リモートホスト[kankan.com]から強制的に切断されたようです。次のようにすべての例外をキャッチできます。

try:
    open(full_path,'w+').write(con) 
except URLError as e:
    print(e.reason)
except:
    print("Unknown Error")
于 2013-09-03T07:41:50.997 に答える
0

これを機能させるには、ディレクトリを作成する必要がありますF:/Copy/Desktop/kankan

でファイルを開いても、ディレクトリは作成されw+ませ。読み取りと書き込みの両方のためにファイルを開きたいこと、および最初にファイルをクリア (切り捨て) する必要があることを通知するだけです。

親ディレクトリも作成する必要がある場合は、os.makedirs()関数を使用します。

あなたのwhileループについては、else:完全に省略します。print 'Download finished'代わりに行をデデントするだけです。

2 番目のエラーは、URL がローカル ファイルとして開かれていることです。URL を確認してください。存在しないハードディスク上のファイルを指しています。

于 2013-09-03T07:04:48.133 に答える