我正在使用允许https重定向的open-uri模块。
我要做的是打开域中的每个页面。我首先通过海葵爬行来做到这一点:
require 'anemone'
require "./open_uri"
class Query
def initialize()
fs = File.read("file.json");
string = JSON.parse(fs);
string["items"].each do |item|
Anemone.crawl("http://" + item["displayLink"] + "/") do |anemone|
anemone.on_every_page do |page|
#p page.url
begin
OpenURI.open_uri(page.url) do |f|
f.each_line do |line|
p line
end
end
rescue
p "404"
next
end
end
end
p "---------------------------------------------------------"
end
end
end
qs = Query.new()
我正在尝试打开它,然后将每一行打印到控制台,但看起来好像所有打印在我的控制台中都是404.查看我的代码这意味着open_uri无法打开任何链接,即使据我所知,它们是有效的。
我在这里缺少什么?
同时
rescue Exception=> e
p e
end
将以下内容输出到控制台:
#<OpenURI::HTTPError: 404 Not Found>
正如评论中所建议的,我试图卷曲导致404错误的链接,并且输出中的控制台不会返回404页面。我尝试了大约40个返回的链接,并且在控制台中卷曲后没有一个返回404.有什么想法吗?