Python - 使用请求登录网站

时间:2014-06-27 08:55:47

标签: python login web

我不得不承认我对此非常无能为力:我需要登录此网站https://segreteriaonline.unisi.it/Home.do,然后执行一些操作。问题是我找不到在网页源中使用的表单,我基本上从未尝试过通过python登录网站。 这是我写的简单代码。

import requests

url_from    = 'https://segreteriaonline.unisi.it/Home.do'
url_in      = 'https://segreteriaonline.unisi.it/auth/Logon.do'

data = {'form':'1', 'username':'myUser', 'password':'myPass'}

s = requests.session()
s.get(url_from)
r = s.post(url_in, data)

print r

显然,我得到的是:

<Response [401]>

有什么建议吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您需要使用请求身份验证标头。

请检查here

from requests.auth import HTTPBasicAuth
requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'pass'))
<Response [200]>

答案 1 :(得分:0)

该网站似乎没有登录表单,而是使用HTTP Basic身份验证(导致浏览器请求用户名和密码)。请求通过auth的{​​{1}}参数支持 - 所以你应该能够做到这样的事情:

get