Google에서 검색 결과를 가져 와서 파일에 저장하려고합니다. 그러나 그 결과는 반복되고 있습니다. 또한 파일에 저장하면 마지막 하나의 링크 만 파일로 인쇄됩니다.크롤링 중 반복되는 검색 결과
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'를 사용하여 무언가를하기를 원할 것입니다. 게다가'for' 대신'each'를 사용하고 전역 변수 ('$'로 시작하는 변수)를 피해야합니다. – Stefan
감사합니다. 스탄 나는 그들을 바로 잡을 것입니다. –