我正在尝试打开多个HTML文档。每个站点的URL如下所示:
http://www.website.com/info/state=AL
AL
是阿拉巴马州,但它会因州而改变。我可以创建一个包含所有两个字母组合state=('aa'..'zz').to_a
的数组,但是如何将其输入到AL
以上的参数中?
我希望它能够为所有两个字母组合提取HTML文档,并且从那里我可以使用条件来清除我不想要的那些。但是我应该如何插入两个字母组合呢?
答案 0 :(得分:1)
Ruby的URI类非常有用。它不是用于处理网址的功能最全的软件包 - 如果您需要更多信息,请查看Addressable::URI,但这很好:
require 'uri'
uri = URI.parse('http://www.website.com/info')
{
'Alabama' => 'AL',
'Alaska' => 'AK',
'Arizona' => 'AZ',
'Arkansas' => 'AR',
'California' => 'CA',
}.each_pair do |k, v|
uri.query = URI.encode_www_form( {'state' => v} )
puts uri.to_s
end
哪个输出:
http://www.website.com/info?state=AL
http://www.website.com/info?state=AK
http://www.website.com/info?state=AZ
http://www.website.com/info?state=AR
http://www.website.com/info?state=CA
或者:
%w[AL AK AZ AR CA].each do |s|
uri.query = URI.encode_www_form( {'state' => s} )
puts uri.to_s
end
哪个输出相同的东西。