首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >登录vk.com net::http.post_form

登录vk.com net::http.post_form
EN

Stack Overflow用户
提问于 2012-11-03 07:59:44
回答 2查看 2.3K关注 0票数 2

我想在没有Ruby的情况下登录vk.com或m.vk.com。但是我的代码不起作用。

代码语言:javascript
运行
复制
require 'net/http'

email = "qweqweqwe@gmail.com"
pass = "qeqqweqwe"

userUri = URI('m.vk.com/index.html')
Net::HTTP.get(userUri)
res = Net::HTTP.post_form(userUri, 'email' => email, 'pass' => pass)
puts res.body
EN

回答 2

Stack Overflow用户

发布于 2012-11-03 08:17:00

首先,您需要将userUri更改为以下内容:

代码语言:javascript
运行
复制
userUri = URI('https://login.vk.com/?act=login')

这就是vk站点需要您的登录参数的位置。

我对vk不是很熟悉,但是你可能需要一种方法来处理会话cookie。同时接收它,并为将来的请求提供它。你能详细说明一下登录后你在做什么吗?

下面是用于cookie处理的net/http信息:

代码语言:javascript
运行
复制
# Headers
res['Set-Cookie']            # => String
res.get_fields('set-cookie') # => Array
res.to_hash['set-cookie']    # => Array
puts "Headers: #{res.to_hash.inspect}"
票数 2
EN

Stack Overflow用户

发布于 2012-11-03 09:49:16

这种任务正是机械化的目的所在。机械化自动处理重定向和cookie。你可以这样做:

代码语言:javascript
运行
复制
require 'mechanize'

agent = Mechanize.new
url = "http://m.vk.com/login/"

page = agent.get(url)

form = page.forms[0]
form['email'] = "qweqweqwe@gmail.com"
form['pass'] = "qeqqweqwe"
form.submit

puts agent.page.body
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13204655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档