新手问题 mechanize 模拟登陆 126 邮箱

Star · 2013年10月22日 · 最后由 googya 回复于 2013年10月24日 · 4133 次阅读

我想使用 mechanize 模拟登陆 126 邮箱

encoding: utf-8
require 'rubygems'
require 'mechanize'

agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get("http://126.com/")
form = page.form_with(:id => 'login126')
form.username = 'xxxx'
form.password = 'xxxx'
form.savelogin = '0'
form.url2 = 'http://mail.126.com/errorpage/error126.htm'
result = form.submit

这样不行啊,哪位大大指点迷津

解决了,action 地址是 js 生成的,不是原本的 126.com form.acrion = 'xxxxx 生成的 url 地址 xxxxxxx' 具体用 firebug 就知道地址了

有具体的 mechanize 日志吗?很多系统做了 js 跳转和验证,还有 refter 之类的,你都设置了吗???

这种问题。。。呃。。。太难了

刚才看了下,完全不知道网易在做什么。。。

换个进入的地址试试:

http://reg.163.com/login.jsp?type=1&product=mail126&url=http://entry.mail.126.com/cgi/ntesdoor?hid%3D10010102%26lightweight%3D1%26language%3D0%26style%3D-1

#2 楼 @googya 这样也是没用的,仍然不让你登陆,我估计还得去带个 cookie 什么的验证才行

#3 楼 @2vive 虽然我不知道这个行不行,但是就算 3g 版的可以实现模拟登陆也不满足要求,我要进去后创建转发规则,3G 版本的没这功能

@Star 要不您试试用watir来驱动浏览器吧,缺点就是需要 GUI 环境

#4 楼 @Star 进去之后,还有个跳转的过程,还得来一遍。。。你注意看返回的内容

需要 登录 后方可回复, 如果你还没有账号请 注册新账号