0

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

4

0 に答える 0