我正在使用允许 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 个返回的链接,但在控制台中 curl 后没有一个返回 404。有什么想法吗?