我正在尝试使用 Python 访问和解析工作中的网站。站点授权是通过 siteminder 完成的,因此通常的 urllib/urllib2 用户密码不起作用。有谁知道如何做到这一点?谢谢诺姆
问问题
2709 次
3 回答
2
只是这样做了 - 我知道它是一个老歌 - 但如果其他人想要这样做 - 使用请求库。我之前在 C# 中做过这个,并且使用了大量的代码——但这就是登录我的公司站点管理员系统所需要的全部内容——很好。request.session() 对象将保留重定向、标头和 cookie - 所以您需要担心的只是发布登录表单。我确信变量在您的环境中会有所不同,但过程将是相同的。
output.text 将是您要解析的目标页面的正文,然后您可以使用 xpath 或其他任何内容。
import requests
r = requests.session()
postUrl = "https://loginUrl"
params = { 'USER': 'user',
'PASSWORD': 'pass',
'SMENC': 'ISO-8859-1',
'SMLOCALE': 'US-EN',
'target': '/redir.shtml?GOTO=redirecturl}',
'smauthreason': '0' }
r.post(postUrl, data=params)
getUrl = "http://urlFromBehindLogInYouWantDataFrom"
output = r.get(getUrl)
print(output.text)
于 2017-08-06T22:32:07.067 回答
1
同意 Martin - 您只需复制浏览器的功能即可。一旦成功通过身份验证,Siteminder 将向您传递一个令牌。我也必须这样做,一旦找到好方法就会发布。
于 2013-10-31T07:23:42.890 回答