URL を読み取り、ディスクに書き込むコードがいくつかあります。ここにあります -
url = 'http://www.cs.purdue.edu/homes/ninghui/courses/Spring06/lectures/lecture05.pdf'
ret = requests.get(url)
print ret.headers
print ret.headers['content-encoding']
print ret.headers['content-type']
pathToWrite = 'tmp/test.pdf'
try:
fd = os.open(pathToWrite, os.O_RDWR | os.O_CREAT)
try:
os.write(fd, ret.text)
except Exception as e:
print 'cannot write to file ' + pathToWrite
raise
try:
os.close(fd)
except:
print 'cannot close file ' + pathToWrite
raise
except:
print 'file cannot be opened ' + pathToWrite
raise
上記のコードを使用すると、pdfファイルを取得してディスクに書き込むことができますが、次のエラーが発生します-
UnicodeEncodeError: 'charmap' codec can't encode characters in position 12-13: character maps to <undefined>
次の API を使用すると、同じエラーが発生します -
f = open(pathTowWrite, 'wb')
f.write(ret.text)
明らかな何かが欠けているように感じます。これは簡単すぎて間違っているようです。