我在互联网上看了很多帖子,但似乎没有一个对我有用。 我有一个网页表单需要用户名和密码才能登录。这是我到目前为止尝试过的代码片段
params = urllib.parse.urlencode({'login' : 'user', 'password' : 'pwd'})
f = urllib.request.urlopen("https://example.com/login.php?%s" % params)
print(f.read().decode('utf-8'))
然而,它让我返回登录页面源而不是登录后出现的“用户面板”。如果我在浏览器的URL栏中写https:/example.com/login.php?login=user&password=pwd
,它会将我登录。目标是获取登录后显示的页面源(“用户面板”)。
有人可以帮帮我吗?
使用Python 3.5
答案 0 :(得分:1)
正确用法是
f = urllib.request.urlopen("https://example.com/login.php", data=params)
来自urllib.request
documentation:
data 可以是指定要发送到服务器的其他数据的字符串,如果不需要此类数据,则可以是
None
。
请注意,这会发送POST
个请求,而不是GET
。如果您必须发送GET
请求,您只需执行以下操作:
f = urllib.request.urlopen("https://example.com/login.php?user={0}&password={1}".format('user', 'pwd'))
答案 1 :(得分:1)
根据the documentation for urllib,您需要将关键字参数templateUrl: 'js/directives/flightInfo.html',
link: function(scope, ele, attr) {
scope.plusOneAdult = function(id) {
// your code
};
scope.minusOneAdult = function(id) {
// your code
}
}
(或第二个位置参数)传递给data
,而不是将它们添加到网址:
urlopen