簡體   English   中英

使用 requests 模塊從 aspx 站點下載 zip 文件

[英]Using requests module to download zip file from aspx site

我正在嘗試使用請求模塊下載 zip 文件。 如果我運行此代碼,它會在我的機器上創建一個 zip 文件,但它只是錯誤頁面的 HTML 文件。 如果我在瀏覽器中輸入 URL,它會正確下載壓縮文件。

import requests
zipurl = "https://www.dallascad.org/ViewPDFs.aspx?type=3&id=\\DCAD.ORG\WEB\WEBDATA\WEBFORMS\data%20products\DCAD2021_CURRENT.zip"
zname =  "DCAD2021_CURRENT.zip"
resp = requests.get(zipurl)
zfile = open(zname, 'wb')
zfile.write(resp.content)
zfile.close()  

zipurl :您提供的在瀏覽器中有效的 zipurl 有效,因為瀏覽器正在編碼和 escaping 一些字符。 正確的 url 改為如下:

import requests

params = {
    'type': '3',
    'id': '//DCAD.ORG/WEB/WEBDATA/WEBFORMS/data products/DCAD2021_CURRENT.zip',
}

response = requests.get('https://www.dallascad.org/ViewPDFs.aspx', params=params) 

通過以下方式確定是這種情況:

在打開檢查網絡選項卡的情況下導航到瀏覽器中的zipurl ,我將請求復制為 curl。 然后我將此 curl 復制到https://curl.trillworks.com/中,並查看 python 請求是否有效。 它做了。 然后我刪除了標題並驗證它仍然有效。 因此,我比較了兩個不同的 url,並看到了編碼/斜線的一些差異。

requests.utils.unquote(response.url)
'https://www.dallascad.org/ViewPDFs.aspx?type=3&id=//DCAD.ORG/WEB/WEBDATA/WEBFORMS/data+products/DCAD2021_CURRENT.zip'

對比

requests.utils.unquote(zipurl)
'https://www.dallascad.org/ViewPDFs.aspx?type=3&id=\\DCAD.ORG\\WEB\\WEBDATA\\WEBFORMS\\data+products\\DCAD2021_CURRENT.zip'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM