4

MS Windowshttr::user_agentの呼び出しでユーザー エージェントを変更しようとするときに、特に考慮する必要があることはありますか? httr::GET()と を使用R-3.1.0してhttr 0.3います。

の例に従うと、?user_agent次の結果が得られます。

url_this <- "http://httpbin.org/user-agent"

標準ユーザー エージェント:

GET(url_this)   
Response [http://httpbin.org/user-agent]
  Status: 200
  Content-type: application/json
{
  "user-agent": "curl/7.19.6 Rcurl/1.95.4.1 httr/0.3"
} 

変更されたユーザー エージェント:

GET(url_this, user_agent("Mozilla/5.0"))
Response [http://httpbin.org/user-agent]
  Status: 200
  Content-type: application/json
{
  "user-agent": "curl/7.19.6 Rcurl/1.95.4.1 httr/0.3"
}

url_this2 番目の呼び出しは、ブラウザーでアクセスしたときに得られるものに近いものを返すと予想していました。

{
  "user-agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
}

ここで何が欠けていますか?もsetInternet2(TRUE)最初に実行しましたが、同じ結果が得られました。

4

1 に答える 1

7

Very curious the help page ?user_agent suggests it should work. You can set a header explicitly and it does work

> GET("http://httpbin.org/user-agent", add_headers("user-agent" = "Mozilla/5.0"))
Response [http://httpbin.org/user-agent]
  Status: 200
  Content-type: application/json
{
  "user-agent": "Mozilla/5.0"
} 

but the example given in ?user_agent appears not to.

> GET("http://httpbin.org/user-agent", user_agent("Mozilla/5.0") )
Response [http://httpbin.org/user-agent]
  Status: 200
  Content-type: application/json
{
  "user-agent": "curl/7.19.6 Rcurl/1.95.4.1 httr/0.3"
} 
> 

It is returning

> httr:::default_ua()
[1] "curl/7.19.7 Rcurl/1.95.4.1 httr/0.3"

My ISP was also doing something funky so you may need:

GET("http://httpbin.org/user-agent", add_headers("user-agent" = "Mozilla/5.0", "Cache-Control" = "no-cache"))
于 2014-05-08T15:20:07.630 に答える