首页 > 解决方案 > 将数字列从 url 保存到 python 数组

问题描述

我想将此url 中的数据列保存到 python 中的数组中。例如,我使用 pandas.save_table 进行了尝试:

import pandas as pd
pd.read_table('https://adventofcode.com/2019/day/1/input', sep='')

但我明白HTTPError: HTTP Error 400: Bad Request了,我认为这不是正确的方法。有人可以帮我吗?

标签: python-3.xpandashttps

解决方案


如果您尝试打开问题中的链接(在浏览器中使用隐身模式或类似的方式,即删除您的 cookie),您会看到您需要登录网站才能访问该页面。这就是为什么您400 Bad Request从服务器收到错误响应的原因。

从您尝试访问的网站的常见问题解答部分:

身份验证如何工作?Advent of Code 使用 OAuth 通过其他服务确认您的身份。当您登录时,您只会将您的凭据提供给该服务 - 绝不会提供给 Advent of Code。然后,您使用的服务会告诉 Advent of Code 服务器您就是您。一般来说,除了已经公开的信息之外,这不会显示任何关于您的信息;以下是来自 Reddit 和 GitHub 的示例。Advent of Code 将记住您用于身份验证的服务中的唯一 ID、姓名、URL 和图像。

该网站使用 OAuth 处理对您创建的 url 的登录将需要这些访问令牌。您可以使用类似的库python-oauth2来帮助您解决此问题(还有其他库,因此您可以阅读并决定要使用哪个库)。创建和理解如何发出 http 请求超出了这个答案的范围。我建议您在互联网上四处寻找一些解释,然后再试一次,如果您遇到困难,请再问一个问题。否则,从浏览器保存文件可能会更容易......但我会把这个答案留给下一个遇到同样问题的人。


推荐阅读