open-uri

使い方

参考:

OpenURI の使い方 | KeruuWeb

open-uri による Web クローリング入門 | 株式会社ルーター

open-uri で URL を開く方法

URI.parse を使う

require "open-uri"
URI.parse("https://example.com/").open do |f|
  // ...
end

拡張された Kernel.#open を使う

require "open-uri"
open("https://example.com/") do |f|
  // ...
end

参考:

library open-uri (Ruby 2.5.0)

instance method OpenURI::OpenRead#open (Ruby 2.5.0)

singleton method OpenURI.open_uri (Ruby 2.5.0)

Rails fetch url – Stack Overflow

open-uri で拡張された open で URL を開いた場合の戻り値

10 キロバイト(10,240 バイト)以下の場合は StringIO、それより大きい場合は Tempfile

参考:

open-uri の open の戻り値 – Qiita

Ruby の open_uri でファイルオブジェクトが Tempfile になる瞬間を追った – Qiita

Buffer – ruby/open-uri.rb at v2_6_0 · ruby/ruby – GitHub

Why does OpenURI treat files under 10kb in size as StringIO? – Stack Overflow

module OpenURI::Meta

サーバから取得したデータの属性を扱うために使われるモジュールです。データを表す文字列や StringIO が extend します。

参考:

module OpenURI::Meta (Ruby 2.5.0)

charset

require "open-uri"

charset = nil
html = open(url) do |f|
  charset = f.charset
  f.read
end

参考:

instance method OpenURI::Meta#charset (Ruby 2.5.0)

Nokogiri で文字化けを防ぐ – Qiita

Shift_JIS サイトを Nokogiri でパースするときにはエンコード指定 (CP932 指定推奨) – Qiita

open-uri で utf-8 以外のページを文字変換して取得する | deadwood

Nokogiri を使った Ruby スクレイピング | 酒と涙とRubyとRailsと

open-uri で UTF-8 でないページを取得するときの注意 | Route 477

OpenURI の使い方 | KeruuWeb

charset のデフォルトを UTF-8 にする

open("http://example.com").tap do |io|
  charset = io.charset { "utf-8" }
  io.set_encoding(charset)
end

参考:

Specify default charset using open-uri but use server-provided charset if given – Stack Overflow

base_uri

参考:

instance method OpenURI::Meta#base_uri (Ruby 2.5.0)

異なる scheme (HTTP/HTTPS) 間のリダイレクト

参考:

open-uri で http->https のリダイレクトが禁止されている件 – Qiita

OpenURI で http から https のリダイレクトを一時的に許す gem 作った | ぴよログ

open-uri で http=>https のリダイレクトを行う | 歩いたら休め

open-uri-redirections

参考:

open-uri-redirections/open_uri_redirections: OpenURI patch to allow redirections between HTTP and HTTPS – GitHub

Ruby open-uri redirect forbidden – Stack Overflow

BASIC 認証

参考:

Open-uri の認証とリダイレクト – Qiita

User-Agent を指定する

参考:

Ruby で RSS 取得するときに User-Agent を偽装する | 動かざることバグの如し

Ruby ではてなブックマークの RSS にアクセスすると503が返ってくる | /var/www/yatta47.log

library open-uri (Ruby 2.5.0)

How to set a custom user agent in ruby – Stack Overflow

OpenURI

参考:

library open-uri (Ruby 2.5.0)

module OpenURI (Ruby 2.5.0)

module OpenURI::Meta (Ruby 2.5.0)

IO

参考:

class IO (Ruby 2.5.0)

instance method IO#read (Ruby 2.5.0)

File

参考:

class File (Ruby 2.5.0)

Tempfile

参考:

class Tempfile (Ruby 2.5.0)

StringIO

参考:

class StringIO (Ruby 2.5.0)

instance method StringIO#string (Ruby 2.5.0)

instance method StringIO#read (Ruby 2.5.0)

OpenURI::HTTPError

参考:

class OpenURI::HTTPError (Ruby 2.5.0)

ruby/open-uri.rb at v2_5_1 · ruby/ruby – GitHub

Tagged:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です