我正在 Rails 中开发一个应用程序,它需要检查输入网站 URL 的站点地图是否存在?例如,如果用户输入http://google.com,那么它应该返回“Sitemap present”。我已经看到通常网站在其 URL 末尾有 /sitemap.xml 或 /sitemap 的解决方案。所以我试着把使用 typhoeus gem 对此进行检查,检查 URL(如 www.google.com/sitemap.xml 或 www.apple.com/sitemap)的 response.code,如果它返回 200 或 301,则站点地图存在,否则不是。但我发现有些网站即使没有站点地图也会返回 301,它们会将其重定向到他们的主页(例如http://yournextleap.com/sitemap.xml),因此我没有得到确凿的结果。任何帮助都会非常棒。这是我使用 typhoeus 检查站点地图的示例代码:
# the request object
request = Typhoeus::Request.new("http://apple.com/sitemap")
# Run the request via Hydra.
hydra = Typhoeus::Hydra.new
request.on_complete do |response|
if response.code == 301
p "success 301" # hell yeah
elsif response.code == 200
p "Success 200"
elsif response.code == 404
. puts "Could not get a sitemap, something's wrong."
else
p "check your input!!!!"
end