curlのDオプション
用途としてはログイン状態のHTMLをスクレイピングしたい時とかかな
某アパレルブランドのURLが
https://www.xxxxxx.com/jp/auth/login
ログインフォームが以下だった場合
<form action="/jp/auth/login" method="post"> <input type="text" name="login_id"> <input type="text" name="password"> <input type="submit" value="送信"> </form>
この場合以下のコマンドでログインした時のHTMLが取得できる
curl -d login_id=xxxxxxxxxxx -d password=xxxxxxxxxxxxxx https://www.xxxxxx.com/jp/auth/login
プログラムから実行
これでHTMLは返って来ますが
他にもいろいろ処理をしたいときには
Rubyからcurlコマンドを叩くコードを自動生成する以下のサイトを使うと
コピペするだけでRubyからcurlコマンドを実行するコードが作れます
https://jhawthorn.github.io/curl-to-ruby/
require 'net/http' require 'uri' uri = URI.parse("https://www.xxxxxx.com/jp/auth/login") request = Net::HTTP::Post.new(uri) request.set_form_data( "login_id" => "xxxxxxxxxxx", "password" => "xxxxxxxxxxxxxx", ) req_options = { use_ssl: uri.scheme == "https", } response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end # response.code # response.body
以下の記事を参考にしました