我正在嘗試使用 Pythonrequests從PeerJ下載 PDF 。例如,https://peerj.com/articles/1.pdf。
我的代碼很簡單:
r = requests.get('https://peerj.com/articles/1.pdf')
但是,Response回傳的物件顯示為<Response [432]>,這表示 HTTP 432 錯誤。據我所知,沒有分配該錯誤代碼。
當我檢查r.textorr.content時,有一些 HTML 表示這是一個錯誤 432,并提供了指向同一 PDF 的鏈接,https://peerj.com/articles/1.pdf。
當我在瀏覽器 (Chrome) 中打開 PDF 時,我可以查看它。
我如何獲得實際的 PDF(作為一個bytes物件,就像我應該從中獲得的那樣r.content)?
uj5u.com熱心網友回復:
在打開站點時,您提到過,我還在我的 Firefox 瀏覽器中打開了開發人員工具,并從那里復制了 http 請求標頭并將其分配給 request.get 函式中的 headers 引數。
a = {'Accept': 'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.5',
'Connection': 'keep-alive',
'Host': 'peerj.com',
'Referer': 'https://peerj.com/articles/1.pdf',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-User': '?1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0'}
r = requests.get('https://peerj.com/articles/1.pdf', headers= a)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411405.html
標籤:
