【问题标题】:HTTP Error 503 when reading xlsx file from url从 url 读取 xlsx 文件时出现 HTTP 错误 503
【发布时间】:2021-10-08 21:14:16
【问题描述】:

我正在尝试在 pandas 中导入以下 excel 文件: https://rbnz.govt.nz/-/media/ReserveBank/Files/Statistics/tables/b2/hb2-daily-close.xlsx

我尝试了以下方法:

url="https://www.rbnz.govt.nz/-/media/ReserveBank/Files/Statistics/tables/b2/hb2-daily.xlsx"
df = pd.read_excel(url,sheet_name="Data", header=4, usecols="A,H")

但我收到以下 HTTPError:HTTP 错误 503:服务暂时不可用

我认为问题在于缺少请求标头,所以我尝试了以下方法,但我一直收到相同的错误..

url="https://www.rbnz.govt.nz/-/media/ReserveBank/Files/Statistics/tables/b2/hb2-daily-close.xlsx"
req = Request(url) 
req.add_header('User-Agent', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0') 
content = urlopen(req) 
df = pd.read_excel(content,sheet_name="Data", header=4, usecols="A,H")

有什么想法吗? 谢谢

PS 看起来该网站受 Cloudfare 保护。 How to get around Newspaper throwing 503 exceptions for certain webpages 硒可能是这里唯一的解决方案

【问题讨论】:

    标签: python excel pandas web-scraping python-requests


    【解决方案1】:

    看来,当您添加标头时,您从 URL 的开头删除了 www。该地址(没有www)给你一个HTTP 301 Redirect,它不会自动跟随urllib

    在使用标头获取时尝试将www 添加到您的网址中,看看它是否有效(或切换到使用requests

    【讨论】:

    • 添加 www 无效。带有请求的代码是什么?恐怕硒是唯一的解决方案(请参阅问题更新)
    • 根据您添加的注释,我认为您认为 selenium 或其他操作浏览器的工具会是更好的选择,但即使这样也可能行不通。您最好的选择可能是寻找替代来源,或者可能联系主机并查看他们是否有其他方式来自动获取数据。
    • Selenium 完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多