【发布时间】:2011-03-12 11:46:38
【问题描述】:
我正在尝试提交此网络表单并登录此站点: https://www.kalahari.net/profile/pipeline/signin.aspx
脚本完成后,我不断获取登录站点的源代码作为输出,所以看起来一切正常(没有错误)但只是没有登录。我找不到我做错了什么。请帮助. 我使用的是 Python 3.1.2,我不能使用 Mechanize,因为代码需要用 Python 3.x 编写
我认为我的问题可能是我将登录信息发布到的 POST url,但我似乎无法弄清楚它应该是什么。
f=open("page_src.html",'wb')
cj=cookiejar.CookieJar()
params=urllib.parse.urlencode({'ctl00$ctl00$cplhMain$cplhContent$txtEmail': 'username', 'ctl00$ctl00$cplhMain$cplhContent$txtPassword': 'pass'})
opener = req.build_opener(req.HTTPCookieProcessor(cj))
opener = urllib.request.FancyURLopener()
page = opener.open("https://www.kalahari.net/profile/pipeline/signin.aspx", params)
profilepage = opener.open("https://www.kalahari.net/profile/pipeline/profile.aspx")
source=profilepage.read()
f.write(source)
f.close()
【问题讨论】:
-
尝试使用类似 tcpwatch 的工具来查看您的浏览器在您登录时发送的内容,以及 Python 发送的内容。
-
将
'?'放到网址末尾 -
我掉了?。还是不行。
-
使用 wireshark 比较使用浏览器和脚本时发送的内容。查看Referer、User-Agent、Content-Type headers、生成的隐藏值、对其他文件的请求(可能是带有生成名称的css文件)等
-
我在使用 Wireshark 时遇到问题,谁能帮助我找到我尝试使用 Wireshark 访问的网站的 actionurl 吗?我已经安装了wireshark 并启动了一个活动监视器,然后单击了“登录”按钮。有大量的 http 流量思想,我不确定我在寻找什么......?
标签: python python-3.x webforms urllib