텍스트 파일에서 URL을 가져오고로드되는지 확인하려면 몇 가지 코드를 작성합니다. 내가 가진 코드는 다음과 같습니다루핑 할 때 오류 받기
execution expired
/Library/Ruby/Gems/1.8/gems/firewatir-1.9.4/lib/firewatir/jssh_socket.rb:19:in `const_get': wrong number of arguments (2 for 1) (ArgumentError)
from /Library/Ruby/Gems/1.8/gems/firewatir-1.9.4/lib/firewatir/jssh_socket.rb:19:in `js_eval'
from /Library/Ruby/Gems/1.8/gems/firewatir-1.9.4/lib/firewatir/firefox.rb:303:in `open_window'
from /Library/Ruby/Gems/1.8/gems/firewatir-1.9.4/lib/firewatir/firefox.rb:94:in `get_window_number'
from /Library/Ruby/Gems/1.8/gems/firewatir-1.9.4/lib/firewatir/firefox.rb:103:in `goto'
from samplecodestack.rb:17
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
from samplecodestack.rb:16
from samplecodestack.rb:13:in `each_line'
from samplecodestack.rb:13
사람이 어떻게 작동 얻을 알고 : 나는 오류가 발생하지만
require 'rubygems'
require 'watir'
require 'timeout'
Watir::Browser.default = "firefox"
browser = Watir::Browser.new
File.open('pl.txt').each_line do |urls|
begin
Timeout::timeout(10) do
browser.goto(urls.chomp)
if browser.text.include? "server"
puts 'here the page didnt'
else
puts 'here site was found'
File.open('works.txt', 'a') { |f| f.puts urls }
end
end
rescue Timeout::Error => e
puts e
end
end
browser.close
것은 무엇입니까?
을 당신이 원하는 모든 여전히 유효한 URL의 확인 인 경우, 당신은 아마 인터넷 :: HTTP''사용하고'HEAD' 요청을 발행한다 . 사이트 본문에서 "서버"라는 단어를 확인하면 실제로 제대로로드 된 많은 사이트가 제외됩니다. –
그래, 그 중 일부 사이트를 시도했지만 서버가 다운되고 스크립트가 오류를 던지기 만합니다. –