【问题标题】:Use R behind a proxy on EC2 instance在 EC2 实例上的代理后面使用 R
【发布时间】:2018-09-17 20:53:37
【问题描述】:

我试图在 AWS EC2 实例上的代理后面使用 R,但我不知道如何检查我是否真的在这个代理后面。 我的代理使用 port 80 并且需要密码 “pwd:123.ABC” 才能正常工作(示例) .

proxy_http_url <- "http://123.123.123:80"
proxy_https_url <- proxy_http_url
Sys.setenv(http_proxy = proxy_http_url, http_proxy_user = "pwd:123.ABC", https_proxy = proxy_https_url, https_proxy_user = " pwd:123.ABC ", ftp_proxy = proxy_http_url)  

download.file(url, destfile ='get_data.html', quiet = FALSE)

要查看我的 IP 地址是否会改变,我执行了以下操作:

url <- "http://ipinfo.io/ip"
download.file(url, destfile ='ip_test.html', quiet = FALSE)
ip_test <- website_url%>%html_nodes(xpath="//body")%>%html_text()
ip_test <- data.frame(matrix(unlist(ip_test), nrow=length(ip_test), byrow=T))

但 IP 地址不会改变,即使在再次应用 Sys.setenv() 函数后也是如此。 所以我猜我不在我想使用的代理后面。

有人知道怎么做吗?

帮助非常感谢!

编辑:

【问题讨论】:

  • ifconfig 系统命令只显示您的内部 IP。内部是指那些由您的 VPC 的 DHCP 服务器分配给您的实例。为了检查您的 IP 对外部站点可见,您需要在 R 脚本中设置代理并检查返回的 HTML 后请求任何类似于 ipinfo.io/ip 的服务。
  • 您好,我抓取了ipinfo.io/ip 的输出IP,并且该ip 仍然是同一个,不是我的代理,所以我的代码可以工作。
  • 您能否通过获取 ipinfo 的内容来更新您上面的代码示例?
  • 我现在刚刚编辑。
  • 下载文件后Sys.getenv("http_proxy")返回什么?如果将download.file 替换为getURL 会怎样?

标签: r http amazon-ec2 proxy ifconfig


【解决方案1】:

因此,如果我采用 Soundcloud 来授权抓取。这是我的输出,它告诉我我的代理未经过身份验证:

  • 正在尝试 URL 'https://soundcloud.com/liluzivert/new-patek'

  • 正在尝试 XXX.XXX.XXX.XXX...

  • TCP_NODELAY 设置

  • 已连接到 XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 端口 80 (#0)
  • 建立到 soundcloud.com:443 的 HTTP 代理隧道 CONNECT soundcloud.com:443 HTTP/1.1 主机:soundcloud.com:443 用户代理:R (3.4.1 x86_64-redhat-linux-gnu x86_64 linux-gnu)
  • 代理连接:保持活动状态
  • download.file(url, destfile = "scrape_website.html", quiet = FALSE) : 无法打开 URL 'https://soundcloud.com/liluzivert/new-patek'
  • 另外:警告消息:在 download.file(url, destfile = "scrape_ website.html", 安静 = FALSE) : URL 'https://soundcloud.com/liluzivert/new-patek': 状态为“HTTP 响应代码表示错误”
  • 需要 HTTP/1.1 407 代理身份验证

  • Connection: keep-alive * 忽略 4 字节的响应体

  • 请求的 URL 返回错误:407
  • 与主机 XXX.XXX.XXX.XXX 的连接 #0 保持不变

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 2017-06-09
    • 2021-11-05
    • 2022-07-13
    • 2018-11-06
    • 2016-11-28
    • 1970-01-01
    • 2020-10-27
    • 2013-10-23
    相关资源
    最近更新 更多