承認これくしょん

my black histories

Mechanizeでニコニコ動画の最新コメント500件を取得する

Mechanize使うだけですが、私の環境(RubyInstaller)でCA証明書のデフォルトパスを調べてみると

irb(main):001:0> require "openssl"
=> true
irb(main):002:0> p OpenSSL::X509::DEFAULT_CERT_FILE
"C:/Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows/op
enssl/1.0.0k/ssl/cert.pem"
=> "C:/Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows
/openssl/1.0.0k/ssl/cert.pem"

これでは困るのでカレントフォルダに置いたものを指定して使います。Mechanizeのドキュメント^1を参照。
cURLが配布しているもの^2が有名のようです。

require "mechanize"
require "uri"

mail = "your_mail_address"
password = "your_password"

auth = "https://secure.nicovideo.jp/secure/login?site=niconico"
getflv = "http://www.nicovideo.jp/api/getflv?v="
id = "video_id" # e.g. sm9

cert_store = OpenSSL::X509::Store.new
cert_store.add_file "cacert.pem"
crawler = Mechanize.new
crawler.cert_store = cert_store
crawler.post auth, mail: mail, password: password
params = crawler.get getflv + id
body = URI.decode(params.body)

params = {}
body.split("&").each do |elem|
    param = elem.split("=")
    params[param[0]] = param[1]
end

comments = crawler.post params["ms"], "<thread res_from=\"-500\" version=\"20061206\" thread=\"#{params['thread_id']}\" />"
File.write(id + ".xml", comments.body)

もしくは環境変数SSL_CERT_FILEでパスを上書きする、とのこと?