« [R]エラーメッセージ「open.connection(x, "rb") でエラー: コネクションを開くことができません」 | トップページ | [R]ディレクトリを作成する »

2026年2月18日 (水)

[R]ウェブサイトの応答ヘッダーの取得に失敗する

curlGetHeaders関数は、ウェブサイトの応答ヘッダーを得ることができるが、外部の一般のウェブサイト(グーグルやヤフー)は読み取れるのにlocalhostやイントラのウェブサイトが読み取れないことがある。この場合、内部のウェブサイトはプロキシを経由しないで直接接続する設定になっていると考えられる。そのため、特定のURLではプロキシを使わないような設定にすればよい。

プロキシを使わずに接続するドメインを、Sys.setenv関数を使って環境変数no_proxyに設定すればよい。複数ある場合はコンマで区切って指定する。

> curlGetHeaders("https://www.google.co.jp") |> head(1)
[1] "HTTP/1.1 200 Connection established\r\n"
> curlGetHeaders("http://localhost") |> head(1)
[1] "HTTP/1.0 403 Forbidden\r\n"
> curlGetHeaders("http://intra.company.co.jp") |> head(1)
[1] "HTTP/1.0 502 Bad Gateway\r\n"
> Sys.setenv("no_proxy" = "localhost,intra.company.co.jp,123.456.78.9")
> curlGetHeaders("http://localhost") |> head(1)
[1] "HTTP/1.1 200 OK\r\n"
> curlGetHeaders("http://intra.company.co.jp") |> head(1)
[1] "HTTP/1.1 200 OK\r\n"
> curlGetHeaders("http://123.456.78.9") |> head(1)
[1] "HTTP/1.1 200 OK\r\n"

URLにIPアドレスを直接指定する場合もあるだろうが、そのような場合read_htmlはまったく応答せずしばらくR自体が停止したような状態になってしまうが、上記の例のとおりにそのまま書き込めば、応答するようになる。

« [R]エラーメッセージ「open.connection(x, "rb") でエラー: コネクションを開くことができません」 | トップページ | [R]ディレクトリを作成する »

R(インターネット)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]エラーメッセージ「open.connection(x, "rb") でエラー: コネクションを開くことができません」 | トップページ | [R]ディレクトリを作成する »

無料ブログはココログ

■■

■■■