Ruby 登录vk.com net::http.post\u表单

Ruby 登录vk.com net::http.post\u表单,ruby,http,Ruby,Http,我想不使用Ruby登录到vk.com或m.vk.com。但是我的代码不起作用 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 r

我想不使用Ruby登录到vk.com或m.vk.com。但是我的代码不起作用

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

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

userUri = URI('https://login.vk.com/?act=login')
这是vk站点需要您的登录参数的地方

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

以下是cookie处理的net/http信息:

# Headers
res['Set-Cookie']            # => String
res.get_fields('set-cookie') # => Array
res.to_hash['set-cookie']    # => Array
puts "Headers: #{res.to_hash.inspect}"

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

userUri = URI('https://login.vk.com/?act=login')
这是vk站点需要您的登录参数的地方

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

以下是cookie处理的net/http信息:

# Headers
res['Set-Cookie']            # => String
res.get_fields('set-cookie') # => Array
res.to_hash['set-cookie']    # => Array
puts "Headers: #{res.to_hash.inspect}"

这种任务正是Mechanize的目的。Mechanize自动处理重定向和cookie。您可以这样做:

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

这种任务正是Mechanize的目的。Mechanize自动处理重定向和cookie。您可以这样做:

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

当你清楚地使用Ruby时,你说没有Ruby是什么意思?…你说不工作是什么意思?你收到错误消息了吗?通常他们都有一个很大的提示来说明问题是什么。当你清楚地使用Ruby时,你说没有Ruby是什么意思?…你说不工作是什么意思?你收到错误消息了吗?通常他们对问题所在有很大的暗示。