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 を返した後はどれも見つかりませんでした。何かアイデアはありますか?