Как получить список файлов cookie веб-сайта (URL) с Ruby - PullRequest
0 голосов
/ 31 мая 2018

Я хотел бы знать, есть ли чистый способ получения списка файлов cookie, которые использует веб-сайт (URL)?

Сценарий: Пользователь записывает URL своего веб-сайта иПриложение Ruby on Rails проверяет все куки, которые использует веб-сайт, и возвращает их.Пока что давайте подумаем, что это только один URL.

Я пробовал использовать приведенные ниже фрагменты кода, но я получаю только один или нет куки:

url = 'http://www.google.com'
r = HTTParty.get(url)
puts r.request.options[:headers].inspect
puts r.code

или

uri = URI('https://www.google.com')
res = Net::HTTP.get_response(uri)
puts "cookies: " + res.get_fields("set-cookie").inspect
puts res.request.options[:headers]["Cookie"].inspect

или с помощью Mechanize gem:

agent = Mechanize.new
page = agent.get("http://www.google.com")
agent.cookies.each do |cooky| puts cooky.to_s end

Это не должен быть строгий код Ruby, просто то, что я могу добавить в приложение Ruby on Rails без особых хлопот.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы должны использовать Selenium-webdriver:
, вы сможете получить все куки для данного сайта:

require "selenium-webdriver"


@driver = Selenium::WebDriver.for :firefox #assuming you're using firefox

@driver.get("https://www.google.com/search?q=ruby+get+cookies+from+website&ie=utf-8&oe=utf-8&client=firefox-b-ab")

@driver.manage.all_cookies.each do |cookie|
    puts cookie[:name]
end
0 голосов
/ 31 мая 2018

С помощью HTTParty вы можете сделать это:

puts HTTParty.get(url).headers["set-cookie"]

Получить их как массив с:

puts HTTParty.get(url).headers["set-cookie"].split("; ")

...