はじめに
趣味で個人開発してた時に、pdfダウンロードできず困りました…。初心者の備忘録なので、間違いがあればご指摘ください。
urlopenでダウンロードするとpdfファイルが壊れてる…
import urllib.request
data = urllib.request.urlopen(pdf_export_url).read()
with open(pdf_name, mode="wb") as f:
f.write(data)
上記のようにurlopen
でスプレッドシートをダウンロードし、ファイルの書き込みを終えるとpdfが破損していました。ダウンロード自体は出来ているようなのですが、書き込みがうまくいってないのか開けません。「なんでなん…」と悩みまくりました…。結局、なぜ開けないのかが解決できなかったので、次の形で解消しました。
import requests
headers = {'Authorization': 'Bearer ' + credentials.create_delegated("").get_access_token().access_token}
res = requests.get(pdf_export_url, headers=headers)
with open(pdf_name, mode="wb") as f:
f.write(res.content)
requests.get()
を使い、headers
にはBearer認証で必要なトークンの情報をのせることでデータを引っ張ってきます。これで無事に開くことができました!Bearer認証も学べたので良かったです。