Python自动化一个需要登录的wget脚本

2024-06-01 04:08:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从需要以下内容的站点自动执行下载过程:

  • 发送包含用户名和密码的httppost请求
  • 我应该得到一个cookie(可能包含会话ID)
  • 发送文件的httpget请求,在HTTP头中发送我的cookie详细信息

使用wget now,我必须首先使用密码登录(是否打开会话?):

wget --no-check-certificate -O /dev/null --save-cookies auth.rda_ucar_edu --post-data=email=name@domain.edu&passwd=5555&action=login https://rda.ucar.edu/cgi-bin/login 

然后,我检索我需要的文件:

^{pr2}$

在Python中有一种很好的方法来实现这一点吗?我试过很多方法,但都没有成功。下面的python代码似乎可以让我正确登录。但是,我相信我需要在下载数据时保持会话的实时性?在

url = 'https://rda.ucar.edu/cgi-bin/login'
values = {'email': 'name@domain.edu', 'password': '5555', 'action': 'login'}
data = urllib.urlencode(values)
binary_data = data.encode('ascii')
req = urllib2.Request(url, binary_data)
response = urllib2.urlopen(req)
print response.read()

也尝试过:

from requests import session
with session() as c:
    c.post(url, values)
    request = c.get('http://rda.ucar.edu/data/ds608.0/3HRLY/1979/NARRflx_197901_0108.tar')

任何建议都会有帮助。在


Tags: 文件nameurl密码dataemailcookiedomain