[R]エラーメッセージ「open.connection(x, "rb") でエラー: コネクションを開くことができません」
rvestパッケージのread_html関数でウェブサイトの情報を読み取ると、読み取りに失敗してこのメッセージが表示される場合がある。外部の一般のウェブサイト(グーグルやヤフー)は読み取れるのにlocalhostやイントラのウェブサイトが読み取れないことがある。この場合、内部のウェブサイトはプロキシを経由しないで直接接続する設定になっていると考えられる。そのため、特定のURLではプロキシを使わないような設定にすればよい。
> library(rvest)
> html <- read_html("https://www.google.co.jp")
> str(html)
List of 2
$ node:
$ doc :
- attr(*, "class")= chr [1:2] "xml_document" "xml_node"
> html <- read_html("http://localhost")
open.connection(x, "rb") でエラー: コネクションを開くことができません
> html <- read_html("http://intra.company.co.jp")
open.connection(x, "rb") でエラー: コネクションを開くことができません
プロキシを使わずに接続するドメインを、Sys.setenv関数を使って環境変数no_proxyに設定すればよい。複数ある場合はコンマで区切って指定する。
> Sys.setenv("no_proxy" = "localhost,intra.company.co.jp,123.456.78.9")
> html <- read_html("http://localhost")
> str(html)
List of 2
$ node:
$ doc :
- attr(*, "class")= chr [1:2] "xml_document" "xml_node"
> html <- read_html("http://intra.company.co.jp")
> str(html)
List of 2
$ node:
$ doc :
- attr(*, "class")= chr [1:2] "xml_document" "xml_node"
> html <- read_html("http://123.456.78.9")
> str(html)
List of 2
$ node:
$ doc :
- attr(*, "class")= chr [1:2] "xml_document" "xml_node"
URLにIPアドレスを直接指定する場合もあるだろうが、そのような場合read_htmlはまったく応答せずしばらくR自体が停止したような状態になってしまうが、上記の例のとおりにそのまま書き込めば、応答するようになる。
« [R]文字列型ベクトルの文字列を簡単にテキストファイルに高速で書き込む | トップページ | [R]ウェブサイトの応答ヘッダーの取得に失敗する »
「R(インターネット)」カテゴリの記事
- [R]ウェブサイトから読み取ったHTMLファイルをファイルに出力する(2026.03.14)
- [R]ウェブサイトの応答ヘッダーの取得に失敗する(2026.02.18)
- [R]エラーメッセージ「open.connection(x, "rb") でエラー: コネクションを開くことができません」(2026.02.17)
- [R]Webサイトのページを読み取る(2026.02.03)
- [R]ウェブサイトのページの表の中身を読み取る(2025.10.17)
« [R]文字列型ベクトルの文字列を簡単にテキストファイルに高速で書き込む | トップページ | [R]ウェブサイトの応答ヘッダーの取得に失敗する »

コメント