Ruby + OpenURI+Nokogiriを使用してサイトをクロールしています。ページを取得し、すべてを見つけてa[href]
(同じドメインにあり、適切なプロトコルである場合)、それらに従って再度クロールします。
大きなバイナリ(jpeg、exeなど)へのリンクがある場合がありますが、それらをクロールしたくありません。
HTTPの「Accept」ヘッダーを使用して、次のような間違ったmimeタイプに対してエラーまたは空の応答を取得しようとしました。
require 'open-uri'
page = open(url, 'Accept'=>'text/html,application/xhtml+xml,application/xml')
...しかし、OpenURIは、別のmimeタイプで送信されたバイナリをダウンロードします。
可能性のあるファイルタイプのURLのファイル拡張子を確認する以外に、任意のURLのダウンロードを防ぐ(または競合する応答タイプを検出する)にはどうすればよいですか?