dar*_*dog 1 python xml iis login urllib
当我访问IIS服务器上的页面以检索xml时,通过浏览器使用查询参数(使用下面示例中的http),我得到一个用户名和密码的弹出登录对话框(似乎是系统标准对话框/形成).一旦提交,数据就会到来.作为xml页面.
如何使用urllib处理此问题?当我执行以下操作时,我从未得到提示输入uid/psw ..我只是得到一个回溯,表明服务器(正确)id我是未经授权的.在Ipython笔记本中使用python 2.7
f = urllib.urlopen("http://www.nalmls.com/SERetsHuntsville/Search.aspx?SearchType=Property&Class=RES&StandardNames=0&Format=COMPACT&Query=(DATE_MODIFIED=2012-09-28T00:00:00%2B)&Limit=10")
s = f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)
指向doc的指针也表示赞赏!没有找到这个确切的用例.
我计划将xml解析为csv,如果这有所不同的话.
您正在处理http身份验证.我总是发现使用urllib库快速工作很棘手.该请求 Python包使得它超级简单.
url = "http://www.nalmls.com/SERetsHuntsville/Search.aspx?SearchType=Property&Class=RES&StandardNames=0&Format=COMPACT&Query=(DATE_MODIFIED=2012-09-28T00:00:00%2B)&Limit=10"
r = requests.get(url, auth=('user', 'pass'))
page = r.text
Run Code Online (Sandbox Code Playgroud)
如果查看该URL的标头,您可以看到它正在使用摘要式身份验证:
{'content-length':'1893','x-powered-by':'ASP.NET','x-aspnet-version':'4.0.30319','server':'Microsoft-IIS/7.5' ,'cache-control':'private','date':'Fri,05 Oct 2012 18:20:54 GMT','content-type':'text/html; charset = utf-8','www-authenticate': 'Digest realm = "Solid Earth",nonce ="MTAvNS8yMDEyIDE6MjE6MjUgUE0",opaque ="0000000000000000",stale = false,algorithm = MD5,qop ="auth"'}
所以你需要:
from requests.auth import HTTPDigestAuth
r = requests.get(url, auth=HTTPDigestAuth('user', 'pass'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3076 次 |
| 最近记录: |