python 访问https网站

思棉叶 2012-11-09 03:52:44
想用python的mechanize某块实现登录一个网页并下载网页上的内容。
目标网站:https协议下搭建,需要登录密码。通过代理登录

现在我无论怎么样都链接不到登录的网页,尝试采用urllib模块倒是可以,但感觉实现起来没有mechanize简洁,各位帮忙看看哪出问题了?上代码:


import mechanize
import cookielib

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1'),('Keep-Alive', 300),('Connection', 'keep-alive')]
br.set_proxies({"http":"chnpxy01.cn.ta-mp.com:8080","https":"chnpxy01.cn.ta-mp.com:8080","ftp":"172.24.61.252:8080","ssl":"chnpxy01.cn.ta-mp.com:8080"})
br.add_password('https://xxx.xxx.xxx.aspx', 'name', 'password')
br = br.open('https://https://xxx.xxx.xxx.aspx')



看该网站的源码,里面有几项涉及__VIEWSTATE和__EVENTVALIDATION,也不知道具体是什么用,我用上面的代码都能访问到百度啊,郁闷了
...全文
1363 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gloveing 2012-11-20
  • 打赏
  • 举报
回复
引用 3 楼 azhengye 的回复:
引用 2 楼 agoago_2009 的回复:建议使用Fiddle去观察请求数据包 我用的httpfox工具,对比发现我访问百度时,(Request-Line) 这一行显示为: GET / HTTP/1.1 而我访问目标网站时,(Request-Line)这一行显示为: GET /LoginWebUser.aspx?ReturnUrl=%2……
所以说,你应该向这个路径发请求: /LoginWebUser.aspx?ReturnUrl=%2fDownloadList.aspx
思棉叶 2012-11-19
  • 打赏
  • 举报
回复
引用 2 楼 agoago_2009 的回复:
建议使用Fiddle去观察请求数据包
我用的httpfox工具,对比发现我访问百度时,(Request-Line) 这一行显示为: GET / HTTP/1.1 而我访问目标网站时,(Request-Line)这一行显示为: GET /LoginWebUser.aspx?ReturnUrl=%2fDownloadList.aspx HTTP/1.1 也不知道是不是这里的问题啊?实在不行只好用urllib2库了,我都怀疑mechanize是不是不支持这种带登录的网站了。。。。
Gloveing 2012-11-19
  • 打赏
  • 举报
回复
建议使用Fiddle去观察请求数据包
crifan 2012-11-19
  • 打赏
  • 举报
回复
还是建议你用urllib2吧,自己可以掌控整个流程。 下面这些,仅供参考: 【教程】模拟登陆网站 之 Python版(内含两种版本的完整的可运行的代码)
crifan 2012-11-12
  • 打赏
  • 举报
回复
没用过mechanize,不多评论。 但是要说的是,对于模拟网站登录,不是你随便使用类似/同样的代码,去模拟,都随便就可以成功的。 所以你的上述代码登录百度可以,但是未必也可以登录其他网站。 这个,或许对你有点帮助: 【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项 当然,如果本身已了解,则可忽略之。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧