Я пытаюсь использовать случайный ключ, пару значений из YAML файл, который выглядит следующим образом:Используя случайный ключ/значение из YAML файла
'user_agents':
'Mozilla': '5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
'Mozilla': '5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)'
'Mozilla': '5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16'
'Mozilla': '4.0 (compatible; MSIE 6.0; Windows NT 5.1)'
Используя этот скрипт:
require 'mechanize'
require 'yaml'
info = YAML.load_file('test-rand.yml')
@user_agent = info['user_agents'][info.keys.sample]
agent = Mechanize.new
agent.user_agent = @user_agent
if @user_agent.nil?
puts "The user agent is nil"
else
puts "Using: #{@user_agent}"
end
Однако при запуске этого скрипта я продолжаю получать The user agent is nil
, как вы вытаскиваете случайный ключ/значение из файла YAML?
Я также попытался @user_agent = info['user_agents'][info[rand(values.size)]]
YAML перевести хэш и хэш в рубин может содержать только уникальные ключи, так что вы на самом деле всегда имеет только последний ключ '' Mozilla ':' 4.0 (compatible; MSIE 6.0; Windows NT 5.1). –
Есть ли способ обойти это? – 13aal
используйте уникальные ключи в файле yaml. –