我正在制作一个需要 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/