簡體   English   中英

Python麻煩下載帶有無擴展名的動態Url的excel文件

[英]Python Trouble Downloading excel file with Dynamic Url with No extension

我找不到使用 python 中的請求模塊下載 excel 文件的方法 url 似乎是動態的,並且沒有任何擴展,我刪除下面的代碼

download = requests.get('https://www.djppr.kemenkeu.go.id/page/loadViewer?idViewer=9369&action=download')
with open('file.xlsx', 'wb') as f:
f.write(download.content)

此代碼的輸出僅將 html 代碼保存到文件中。 誰能幫我找到下載excel表的正確方法

首先,您應該檢查您在download.content獲得的download.content - 可能它會發送帶有一些消息的 HTML,或者要求登錄名和密碼,或者有一些重定向到文件的 JavaScript。

您還應該檢查您的網址在瀏覽器中的表現。 通過這種方式,您還可以查看它是否顯示一些 HTML。

您甚至可以在瀏覽器中下載文件,然后您可以從瀏覽器中獲取文件的真實 URL。 您可以查看是否可以在 HTML 中找到此 url,或者是否可以找到一些可用於生成 URL 的元素。


您的 url 提供具有<iframe>scr HTML 頁面,其中scr具有到文件的相對 URL。 因此,您必須首先獲取 HTML,然后搜索<iframe>並獲取相對src ,然后創建絕對 URL,然后下載文件。

import requests
from bs4 import BeautifulSoup

url = 'https://www.djppr.kemenkeu.go.id/page/loadViewer?idViewer=9369&action=download'

r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')

src = soup.find('iframe')['src']
print(src)

url = 'https://www.djppr.kemenkeu.go.id' + src

r = requests.get(url)
with open('file.xlsx', 'wb') as f:
    f.write(r.content)

暫無
暫無

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

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