我一直在嘗試制作一個程式,從“自動生成”它們的鏈接下載 pdf 并重命名這些檔案,但我失敗了。
例如。鏈接“https://checkaproduct.se.com/DistantRequestDispatcher.aspx?action=export&pid=62035238&lang=en_us”
當您輸入瀏覽器時(chrome - 使用一些愚蠢的名稱自動下載)Vivaldi 例如。詢問您是否要保存檔案。我對以 .pdf 結尾的鏈接沒有任何問題,但這些鏈接讓我很頭疼。我必須自動化這個程序,因為我通常有成千上萬的 pdf 檔案要下載,手動執行此操作會讓我自殺。
我試過了 :
from pathlib import Path
import requests
filename = Path('test.pdf')
url = 'https://checkaproduct.se.com/DistantRequestDispatcher.aspx?action=export&pid=62035238&lang=en_us'
response = requests.get(url)
print (response.status_code)
filename.write_bytes(response.content)
和
import urllib.request
urllib.request.urlretrieve(url, "filename.pdf")
但是程式只是掛起并且什么都不做。有沒有辦法從這樣的鏈接下載pdf?
uj5u.com熱心網友回復:
您將需要撰寫自己的 os 或 python curl 呼叫,但可以在短期視窗中捕獲這種型別的鏈接,注意pdf 是使用今天的日期自動生成的,因此它不是存盤的 pdf,而是新Date: Wednesday, November 9, 2022生成的。
基本上你呼叫第一個參考來回應Location:然后使用Location:=第二個呼叫,可能并不總是在所有情況下都有效,但對于這個來源
curl -I --url "https://checkaproduct.se.com/DistantRequestDispatcher.aspx?action=export&pid=62035238&lang=en_us"|find "Location:"
使用 Location: 作為變數(這里是手動)也使用 pid 作為跟蹤下載名稱的手段
curl -o 62035238.pdf --url "https://checkaproduct.se.com/Download.aspx?qs=elorc1pNdXN4OFpyd3VWc1liN2JRZytKemNQWVdoZkI0R3NMU0FscWFlcTlpVTM0eWVBUFJ0aDZLbC81RjJUR2wwSXA0SFplcjhCMTFIUEhqWHdiUE9Fb2g0TlRmQW5JK2N6akpOc0lCN2JGMlBlNml4a3IvS2ZRaUNtdHd4T2RjeFRsaEdPR0J4aUVIazdxZ2VrTDJnPT0%2%"
這是一個 try.bat 簡單地說get pid
set "pid=%1"
curl -I --url "https://checkaproduct.se.com/DistantRequestDispatcher.aspx?action=export&pid=%pid%&lang=en_us"|find "Location:">tmp.txt
for /F "usebackq tokens=1* delims= " %%a in (`type tmp.txt`) do curl -o %pid%.pdf --url "https://checkaproduct.se.com%%b"
start "" %pid%.pdf

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/532119.html
標籤:Pythonpdf下载
上一篇:具有不同渲染類和合并的TCPDF
