Mechanize を使用していくつかのリンクをスクレイピングするスクリプトを作成しました。このスクリプトは、後で Excel ファイルに入れるコードを記述します。
今のところ、最初のページを過ぎて認証することはできません。value= for nil:NilClass
フォームにパスワードを設定しようとすると、未定義のメソッドが表示され続け、それに関する情報を見つけることができませんでした。
コードにメソッドさえないvalue=
ので、何が起こっているのかわかりません。コードはユーザー名に対して正常に実行されますが、パスワードを入力して Enter キーを押すと、次のエラーが表示されます。
users.rb:11:in `block (2 levels) in <main>': undefined method `value=' for nil:NilClass (NoMethodError)
from (eval):23:in `form_with'
from formity_users.rb:7:in `block in <main>'
from /home/codelitt/.rvm/gems/ruby-2.0.0-p247/gems/mechanize-2.7.1/lib/mechanize.rb:433:in `get'
from formity_users.rb:5:in `<main>'
これは私の users.rb スクリプトです:
require 'rubygems'
require 'mechanize'
a = Mechanize.new
a.get('https://www.example.com') do |page|
#Enter information into forms
logged_in = page.form_with(:id => 'frmLogin') do |f|
puts "Username?"
f.field_with(:name => "LoginCommand.EmailAddress").value = gets.chomp
puts "Password?"
f.field_with(:name => "Login.Password").value = gets.chomp
end.click_button
#Click drop down
admin_page = logged_in.click.link_with(:text => /Admin/)
#Click Users and enter user admin section
user_admin = admin_page.click.link_with(:text => /Users/)
#Scrape and print links for now
user_admin.links.each do |link|
text = link.text.strip
next unless text.length > 0
puts text
end
end