前提・実現したいこと
Pythonについて、なにもわからないです。(初心者)
ログインが必要なサイトに入り、WEB上にあるPDFファイルを
ダウンロードしたいです。
VBAでログインとPDFのURLを取得できる状態であるため、
取得したURLを使用して、PythonでPDFをDLできないか挑戦しています。
発生している問題・エラーメッセージ
プログラムによるエラーメッセージはありません。
該当のソースコード
Python
1import requests 2 3url="https://~~~~~~/test.pdf" 4pdf = requests.get(url, auth=('ID','PASSWORD'),stream=True) 5 6filename = url.split("/")[-1] 7 8with open(filename,mode="wb") as f: 9 f.write(pdf.content) 10
試したこと
VBAのURLDownloadToFile関数を使用して、
DLしました。PDFファイルが作成されましたが
開くと、ファイルが破損している可能性があります。
と表示され、PDFを閲覧することが出来ませんでした。
そのため、Pythonで解決できないか確認しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
このコードを動作させた結果はいかがでしたか?
9行目のf.write(pdffile.content)ですが、pdffileという変数は定義されていません。
4行目で定義しているpdf変数を使用して改めてf.write(pdf.content)として試してみてください。
回答ありがとうございます。
Lhankor_Mhy様, nto様
ご指摘ありがとうございます。
pdfは、入力ミスです。修正しました。
この状態で実行すると、PDFファイルが出力されますが、
ファイルのサイズは、1Kであり、ファイルが破損している状態です。
破損しているPDFをテキストエディタで開くとどうなりますか?
print(pdf.status_code)とすると何が返ってきますか?
Lhankor_Mhy様、nto様
回答ありがとうございます。
nto様
Visual Studio Codeを使用して、デバックなしで実行したところ、
なれていないツールを使用しているため、見方が分かりません。
すみません。ターミナルに書かれてた内容が
TypeError: Cannot mix str and non-str arguments
IndentationError: unexpected indent
というエラーが表示されていました。
Lhankor_Mhy様
破損しているPDFをテキストエディタで開くと空でした。
サイズも0でした。(環境を再現したとき)
本番の環境では、サイズ1KBという表示されていました。来週にならないと確認できないです。すみません。
nto様
ログインのURLは、Response[404]
PDFのURLは、Response[403]になりました。
Lhankor_Mhy様
PDFをテキストファイルで見ると403 FORBIDDENと表示されています。
であれば、
・パスワードなどが間違っている
・認証方式がBASIC認証ではない
などの原因が考えられるかと思います。