热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Python-从网站登录和下载特定文件》经验,为你挑选了1个好方法。

我尝试登录网站并下载特定文件的尝试已经下降.

具体来说,我正在登录这个网站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.

特别是,我想切换突出显示的输入 输入,在"可视化和下载"按钮下载文件之前,选择作物类型,供水,输入水平,时间段和地理区域之前.

例如,我想获得的数据小麦(作物),雨浇(供水),高(输入电平),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))

也许我已经在整个过程的战壕中根深蒂固地看到了一个简单,可行的解决方案,但是非常感谢任何帮助.



1> 小智..:

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

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

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

要登录此站点,您需要两件事:

持久会话COOKIE

HTTP POST请求登录表单URL

首先,让我们创建将持有饼干形式的服务器会话对象http://docs.python-requests.org/en/master/user/advanced/#session-objects

s = requests.Session()

接下来,您需要使用GET请求访问网站.这将为您生成COOKIE(服务器将为您的会话发送COOKIE).

s.get(site_url)

最后一步将是登录网站.您可以使用Firebug或Chrome Developer Console(取决于您使用的浏览器)来检查需要发送的字段(转到"网络"选项卡).

s.post(site_url, data={'_username': 'user', '_password': 'pass'})

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

之后,您将通过身份验证.接下来将访问您要下载的文件的URL.

s.get(file_url)

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

警告说明

请注意,此站点未使用HTTPS安全连接.您将提供的任何凭据都将通过互联网进行未加密,并且可能会被不应该看到它们的人看到.


推荐阅读
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Sanic 是一个类似于 Flask 的 Python 3.5 Web 服务器,以其出色的写入速度而著称。与 Flask 不同,Sanic 支持异步请求处理,这使得它在处理高并发请求时表现更加出色。通过利用 Python 的异步特性,Sanic 能够显著提高应用程序的性能和响应能力,适用于构建高性能的异步 Web 应用。 ... [详细]
  • 本文详细介绍了逻辑运算符 &&、|| 和 ! 的使用方法及其在编程中的应用,包括短路逻辑运算的特性。 ... [详细]
  • 可参照github代码:https:github.comrabbitmqrabbitmq-tutorialsblobmasterjavaEmitLogTopic.ja ... [详细]
  • 本文介绍了如何在Spring框架中使用AspectJ实现AOP编程,重点讲解了通过注解配置切面的方法,包括方法执行前和方法执行后的增强处理。阅读本文前,请确保已安装并配置好AspectJ。 ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • Java 中的等时日期(int,int)方法,示例 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
author-avatar
淘老婆桃桃_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有