填写在线表格

时间:2016-10-04 22:03:20

标签: python-3.x https web-crawler

我正在尝试使用用户名和密码填写位于https://idp.ncedcloud.org/idp/AuthnEngine#/authn的表单。我想知道是否成功通过。我试过它ith python2,但我无法让它工作。

#!/usr/bin/env python
import urllib
import urllib2

name =  "username"
name2 = "password"
data = { 
        "description" : name, 
        "ember501": name2
       }   

encoded_data = urllib.urlencode(data)
content = urllib2.urlopen("https://idp.ncedcloud.org/idp/AuthnEngine#/authn",
        encoded_data) 
print(content)

错误:
它打印同一网页的内容,我希望它打印新的网页内容。 期望的行为: python3解决方案,转到下一个网页,或为什么我的代码不工作

1 个答案:

答案 0 :(得分:1)

使用requests库将数据发布到此类网页的基本示例。我建议使用会话,以便为以下任何请求保存您的登录信息:

import requests

url = "http://example.com"

name =  "username"
name2 = "password"
data = { 
    "description" : name, 
    "ember501": name2
}   

s = requests.Session()

# If it supports basic auth you could just do 
# s.auth(username, password) here before a request 

req = s.post(url, data=data)

print(req.text)

然后应该能够使用s会话对象

执行以下请求