gpt4 book ai didi

Python-登录并从网站下载特定文件

转载 作者:行者123 更新时间:2023-12-03 20:18:44 24 4
gpt4 key购买 nike

我尝试登录网站并下载特定文件的尝试跌落了。

具体来说,我正在登录此网站http://www.gaez.iiasa.ac.at/w/ctrl?_flow=Vwr&_view=Welcome&fieldmain=main_lr_lco_cult&idPS=0&idAS=0&idFS=0

为了使我可以选择特定的变量和参数,然后再下载文件并另存为excel或csv。

特别是,我想先选择突出显示的输入inputs,然后再选择裁剪的类型,供水,输入水平,时间段和地理区域,然后再在“可视化和下载”按钮下下载文件。

例如,我想获取美国(地理区域)的小麦(裁剪),雨养(供水),高(投入水平),1961-1990年(时间段,基准)的数据。然后,我想将其另存为Excel文件。

到目前为止,这是我的代码:

# Import library
import requests

# Define url, username, and password
url = 'http://www.gaez.iiasa.ac.at/w/ctrl?_flow=Vwr&_view=Welcome&fieldmain=main_lr_lco_cult&idPS=0&idAS=0&idFS=0'
user, password = 'Username', 'Password'
resp = requests.get(url, auth=(user, password))

也许我在整个过程中都非常渴望看到一个简单,可行的解决方案,但是任何帮助都将不胜感激。

最佳答案

您链接的网站使用基于HTTP POST的登录信息。在您的代码中,您具有:

resp = requests.get(url, auth=(user, password))

它将使用基本的HTTP身份验证 http://docs.python-requests.org/en/master/user/authentication/#basic-authentication

要登录该站点,您需要做两件事:
  • 持久 session cookie
  • 登录表单URL的HTTP POST请求

  • 首先,让我们创建将保存来自服务器 http://docs.python-requests.org/en/master/user/advanced/#session-objects的cookie的 session 对象
    s = requests.Session()

    接下来,您需要使用GET请求访问网站。这将为您生成cookie(服务器将为您的 session 发送cookie)。
    s.get(site_url)

    最后一步将是登录到站点。您可以使用Firebug或Chrome开发者控制台(取决于您使用的浏览器)来检查需要发送哪些字段(转到“网络”标签)。
    s.post(site_url, data={'_username': 'user', '_password': 'pass'})

    这两个字段(_username,_password)似乎对您的站点有效,但是当我检查在POST请求期间发送的数据时,还有更多字段。我不知道它们是否必要。

    之后,您将通过身份验证。接下来的事情是访问您要下载的文件的URL。
    s.get(file_url)

    您提供的链接包含带有各种选项的查询字符串,这些选项可能与您要突出显示的选项有关。您可以使用它来下载具有所需选项的文件。

    警告提示

    请注意,此站点未使用HTTPS安全连接。您将提供的所有凭据将未经加密地通过互联网,并且可能被不应该看到的人看到。

    关于Python-登录并从网站下载特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107839/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com