我試圖從google獲取結果並將它們保存到文件中。但結果正在重複。 當我將它們保存到文件時,只有最後一個鏈接被打印到文件。抓取時YouTube的重複結果
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get('http://www.google.com/videohp')
google_form = page.form('f')
google_form.q = 'ruby'
page = agent.submit(google_form, google_form.buttons.first)
linky = page.links
for link in linky do
if link.href.to_s =~/url.q/
str=link.href.to_s
strList=str.split(%r{=|&})
$url=strList[1].gsub("h%3Fv%3D", "h?v=")
$heading = link.text
$res = $url
if ($url.to_s.include? "webcache")
next
elsif ($url.to_s.include? "channel")
next
end
puts $res
end
end
for link in linky do
File.open("aaa.htm", 'w') { |file| file.write($res) }
end
'file.write($ res)'總是將'$ res'的值寫入文件。你可能想用'link'做一些事情(或者把寫作移到第一個循環中)。另外,你應該使用'each'而不是'for'並且避免使用全局變量(那些以'$'開頭的變量)。 – Stefan
謝謝@Stefan我會糾正他們。 –