Ruby - ウェブスクレイピング - certified

 クラウディア
1. 概要
2. 開いてみる
3. VERIFY_NONE してみる

1. 概要

 よく理解していないのですが・・・。  https のサイトを通常のオープンで開こうとするとエラーになるのだ。  本項は以下のサイトを参考にさせていただきました。
Windows 上の Ruby で SSL 接続時に certificate verify failed が出る場合の対処」
「Ruby の https 通信で ... とりあえず動かしたいとき。
 これらを読むと証明書の場所を自前で定義してそこに証明書を配置するか、証明書のチェックを行わないようにするしかなさそうです。  いささか古い記事を読むと「net/https」を使うようなことを書いていますが、Ruby のマニュアルを読むと「net/https」は 1.9.2 で「net/http」にマージされているようです。
Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > net/https ライブラリ 」
「Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > net/http ライブラリ 
 でまぁ「net/http」も使い方がよ~わからんのです。  で「open-uri」のまま使える
open-uri の HTTPS リクエストで certificate verify failed 
 が、わたしには一番使いやすそうです。

2. 開いてみる

 実際、どういう現象かと言うと /usr/bin/env ruby =begin URI をオープンしてみる =end require('pry') require('open-uri') require('openssl') begin OpenSSL::SSL.module_eval{ remove_const(:VERIFY_PEER) } OpenSSL::SSL.const_set( :VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE ) uri = URI.encode('https://freebsd.sing.ne.jp/') uri = URI.parse(uri) html = open(uri).read rescue => error puts("例外発生[#{error.class}]") error.backtrace_locations.each do | line | puts("#{line}") end puts("[#{self.class.name}][#{error.message}]") end
 というソースを書いてみました。  これはエラーが発生しませんでしたので、これでいこうと思います。
 
 
カウンタバックグラウンド