[ruby] mechanize에서 현재 페이지의 쿠키와 URL을 가져옵니다.

5620 단어 Ruby
mechannize를 사용하면 로그인한 페이지에서 json 파일을 롤업할 때 유용하기 때문에 메모

json 파일을 열 때 쿠키 정보 부여


sq.rb
require 'mechanize'
require 'net/http'
require 'uri'
require 'open-uri'
require "json"


username = 'hoger'
password = 'hoge'

agent = Mechanize.new
page = agent.get('URL')

# login
login_form = page.forms[0]
  login_form.field_with(:name => 'identity').value = username
  login_form.field_with(:name => 'password').value = password
mypage = login_form.submit

# 現在いるページのURL
p mypage.uri.to_s

# cookie情報をゲット
cookie = agent.cookie_jar

# cookie情報を付与した状態でjsonファイルopen
# タイトル一覧をぶっこぬき

uri = URI.parse("jsonファイルpath")
request = Net::HTTP::Get.new(uri)
request["Cookie"] = cookie["hash"].to_s

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end
data = JSON.parse(response.body)

data.each { |e| p e["title"] }

쿠키 같은 정보를 부여할 때 편리해요.


curl-to-ruby를 사용하면 JSON 파일을 열 때 추가해야 할 정보를 바로 알 수 있습니다. 원본 코드를 비교해 보세요!

참고 자료


Mechanize::CookieJar

좋은 웹페이지 즐겨찾기