« [R]文字列型ベクトルの文字列を簡単にテキストファイルに高速で書き込む | トップページ | [R]ウェブサイトの応答ヘッダーの取得に失敗する »

2026年2月17日 (火)

[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]文字列型ベクトルの文字列を簡単にテキストファイルに高速で書き込む | トップページ | [R]ウェブサイトの応答ヘッダーの取得に失敗する »

無料ブログはココログ

■■

■■■