【问题标题】:submitting webforms python提交网络表单 python
【发布时间】: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


【解决方案1】:

该站点可能正在使用 cookie 进行登录,因此您也必须这样做。这意味着您必须保存您在登录时获得的 cookie,并将它们与以下每个请求一起发送到该站点。

查看http.cookiejar

【讨论】:

  • 我编辑了我的代码以使用 cookiejar,据我所知,我正确地使用了它?但它仍然没有登录。还有什么建议,批评吗?
猜你喜欢
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多