web-dev-qa-db-ja.com

open.connection(x、 "rb")のrvestエラー:タイムアウトに達しました

http://google.com からコンテンツを取得しようとしています。エラーメッセージが出ます。

library(rvest)  
html("http://google.com")

Open.connection(x、 "rb")のエラー:
さらにタイムアウトに達しました:
警告メッセージ:「html」は廃止されました。
代わりに「read_html」を使用してください。
ヘルプを参照してください( "非推奨")

会社のネットワークを使用しているため、ファイアウォールまたはプロキシが原因である可能性があります。 set_configを使用しようとしましたが、機能しません。

10
user3267649

オフィスネットワークのプロキシの背後で作業しているときに、同じError in open.connection(x, “rb”) : Timeout was reachedの問題が発生しました。

ここに私のために働いたものがあります、

library(rvest)
url = "http://google.com"
download.file(url, destfile = "scrapedpage.html", quiet=TRUE)
content <- read_html("scrapedpage.html")

クレジット: https://stackoverflow.com/a/38463559

28
user799188

これはおそらく、コンテンツを取得しようとしているサーバーに対して自身を正しく識別していないread_html(または、あなたの場合はhtml)の呼び出しの問題であり、これがデフォルトの動作です。 curlを使用して、read_htmlのハンドル引数にユーザーエージェントを追加し、スクレイパーが自分自身を識別できるようにします。

library(rvest)
library(curl)
read_html(curl('http://google.com', handle = curl::new_handle("useragent" = "Mozilla/5.0")))
6
genericgreatape

VPNがオンになっていたため、この問題に遭遇しました。電源を切った直後に再試行し、問題を解決しました。

0
Brent B

私は同様の問題に直面していました、そして小さなハックがそれを解決しました。ハイパーリンクに私のために問題を引き起こしていた2人のキャラクターがいました。したがって、「è」を「e」に置き換え、「é」を「e」に置き換えたところ、うまくいきました。ただし、ハイパーリンクが引き続き有効であることを確認してください。

0
Arpit Bajpai