railsのtaskファイルに、こちらのgithubのコードを参考にして処理を書いているのですが上手くログインができず、rake scraping:sample
と打つと
以下の様なエラーがでます。
Encoding::CompatibilityError: incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) /Users/***/Desktop/sample/login/lib/tasks/scraping.rake:26:in `block (3 levels) in <main>' /Users/***/Desktop/sample/login/lib/tasks/scraping.rake:8:in `new' /Users/***/Desktop/sample/login/lib/tasks/scraping.rake:8:in `block (2 levels) in <main>' Tasks: TOP => scraping:sample
コードは以下です
require 'mechanize' namespace :scraping do desc "スクレイピング実行" task :sample do Id = '*****' Password = '*****' Mechanize.new do |agent| agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36' agent.get 'http://login.yahoo.co.jp/config/login?.lg=jp&.intl=jp&logout=1&.src=www&.done=http://www.yahoo.co.jp' sleep 3 agent.get 'https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp' agent.page.form_with(name: 'login_form') do |form| form.field_with(name: 'login').value = Id form.field_with(name: 'passwd').value = Password agent.page.body =~ /(".albatross")[0].value = "(.*)"/ form.field_with(name: '.albatross').value = $1 form.click_button end sleep 3 agent.get 'http://yahoo.co.jp' puts true if agent.page.body =~ /ログアウト/ end end end
8行目のMechanize.newとMechanizeをインスタンス化してるところでこけてる気がするのですが、
どうでしょうか?
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。