是否有Ruby gem或Ruby-esque方式检查网页是否有损坏的链接而不抓取实际链接并检查404等等。基本上,我想要一个脱机工作的解决方案,我想检测链接显然是在语法上被破坏了,而不是指向不存在的网页的链接。
因此,例如,如果链接指向“http // stackoverflow.com”,那是一个语法上断开的链接,我想检测到它。但是,如果链接指向“http://www.webpagedoesnotexistyet.com”并返回404,我可以不检测到。
答案 0 :(得分:0)
使用nokogiri解析HTML和URI.parse以检查有效的URL。如果URI遇到它认为是无效网址的错误,则会引发错误。
答案 1 :(得分:0)
使用此:以下链接是一系列链接
for link in links do
begin
url = URI.parse(link)
req = Net::HTTP.new(url.host, url.port)
res = req.request_head(url.path)
if res.code == "200"
puts "#{res.code} ok - #{link}"
else
puts "#{res.code} error - #{link}"
end
rescue
puts "breaking for #{link}"
end
end
答案 2 :(得分:0)
您可以使用DateTime
。如果字符串与它匹配,则它是有效的uri。
String