尝试在MS Windows上的httr::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_this
时所获得的内容:
{
"user-agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
}
我在这里缺少什么?还首先运行setInternet2(TRUE)
,但结果相同。
答案 0 :(得分:5)
非常好奇帮助页面?user_agent
表明它应该有效。您可以显式设置标题,但它确实可以正常工作
> 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"
}
但?user_agent
中给出的示例似乎没有。
> 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"
}
>
它正在返回
> httr:::default_ua()
[1] "curl/7.19.7 Rcurl/1.95.4.1 httr/0.3"
我的ISP也做了一些时髦的事情,所以你可能需要:
GET("http://httpbin.org/user-agent", add_headers("user-agent" = "Mozilla/5.0", "Cache-Control" = "no-cache"))