LoginSignup
0
0

pdfのダウンロードにurlopenが使えなかった話

Posted at

はじめに

 趣味で個人開発してた時に、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認証も学べたので良かったです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0