Ruby 登录以使用 Mechanize 进行 Spotify

标签 ruby login mechanize spotify

我正在制作一个需要 Spotify 登录的脚本,我有以下代码:

require 'mechanize'

mechanize = Mechanize.new

page = mechanize.get('https://accounts.spotify.com/en/login')

form = page.forms.first

form['username'] = 'username'
form['password'] = 'password'

page = form.submit

这段代码给我留下了这个错误:
:in `<top (required)>': undefined method `[]=' for nil:NilClass (NoMethodError)

但是,如果我在 facebook 上尝试相同的代码(当然更改名称),或者我尝试过的任何其他网站,我都不会出错。这可能与没有 post 方法的 Spotify 表单有关吗?我对这种东西不太熟悉,将不胜感激!

最佳答案

查看页面的正文( page.body ),您会看到它是空的。

这是因为该页面的主体(包括表单)是由 javascript (Angular) 呈现的。

由于 Mechanize 无法处理 javascript,因此您需要另一种解决方案。退房:How do I use Mechanize to process JavaScript?

关于Ruby 登录以使用 Mechanize 进行 Spotify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969603/

相关文章:

ruby-on-rails - 如何隐藏日志中 View 的呈现?

ruby - 自定义转换后如何将内容传递给 jekyll 默认转换器?

python - 如何使用函数内的 Mechanize 包登录网站?

python - 使用 Mechanize 使用 Python 发送 POST 参数

ruby - 使用 Mechanize 点击下一页?

ruby-on-rails - 如何找到在运行时定义方法的位置?

ruby-on-rails - 如何将属性作为参数传递给在类上调用的方法?

Grails 简单的注册/登录表单

jsf - j_security_check 直接调用

security - 登录页面的最佳做法?