ログインするには
小説家になろうにスクリプトを使ってログインすることを考えてみる。
Rubyでは定番のライブラリであるMechanizeを使ってログインすることにしよう。
サンプルスクリプトは次の通りである。
アカウントはスクリプトとは別のYAMLに書いてあるとする。
% cat account.yaml
email: hoge@example.com
password: mypassword
実際のスクリプトは次のようなものである。
require 'mechanize'
require 'yaml'
agent = Mechanize.new
agent.user_agent = 'Narou Browser'
params = YAML.load_file('account.yaml')
#agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
agent.ca_file = 'ssl.syosetu.com.crt'
page = agent.get('https://ssl.syosetu.com/login/input/')
next_page = page.form_with do |form|
form.id = params['email']
form.pass = params['password']
end.submit
p next_page
ここで、agent.verify_mode = OpenSSL::SSL::VERIFY_NONEにするのはお薦めしない。
事前にサイトの証明書をブラウザからエクスポートしておこう。
agent.ca_fileに指定しているのがその証明書である。
今日はここまで。