无法使用ruby获取页面源代码

时间:2014-03-30 20:27:39

标签: ruby

应该获取给定网站源代码的ruby代码不起作用。 它说该网站不存在。

require 'uri'
require 'net/http'
uri = URI.parse("http://nice.com/careers?category=170")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response=http.request(request)
@data = response.body

它可以与其他网站一起使用。

  1. 为什么?
  2. 如何解决?

1 个答案:

答案 0 :(得分:2)

我总是喜欢在命令行上使用curl检查内容。

在这种情况下,结果是对http://nice.com/careers?category=170的请求为您提供HTTP 301重定向到同一个域但www.

curl -I "http://nice.com/careers?category=170"
HTTP/1.1 301 Moved Permanently
Date: Sun, 30 Mar 2014 20:50:00 GMT
Server: Apache
Location: http://www.nice.com/careers?category=170

因此,请将代码更新为使用www.nice.com域。

此外,您可以实现逻辑以遵循重定向,如下面的答案:

https://stackoverflow.com/a/6934503/25398