R语言使用httr库和代理服务器进行网页请求的示例代码解析与优化

62 阅读1分钟
  1. 错误处理:  在实际应用中,最好添加适当的错误处理和异常处理来处理可能的网络或其他问题。这样可以确保程序在出现问题时能够 graceful 地处理。
  2. 使用cat函数:  在R中,通常使用cat函数而不是print函数来输出纯文本信息。
  3. 配置列表简化:  可以将代理设置直接传递给GET函数,而无需使用配置列表。这样可以使代码更简洁。
  4. 更加通用:  代码中的URL和代理服务器信息是硬编码的,最好将它们定义为变量以增加代码的灵活性。

image.png 下面是一些改进后的代码:

# 导入httr库
library(httr)

# 定义代理服务器的主机名和端口号
proxy_host <- "www.duoip.cn"
proxy_port <- 8000
http://www.jshk.com.cn/mb/reg.asp?kefu=xiaoding;//爬虫IP免费获取;

# 定义请求的URL
url <- "https://www.tmall.com/"

# 使用httr库的GET函数,设置代理服务器
response <- GET(url, 
                config = use_proxy(url = paste0("http://", proxy_host, ":", proxy_port),
                                   https = paste0("https://", proxy_host, ":", proxy_port)))

# 检查请求是否成功
if (http_status(response)$status_code == 200) {
  # 如果成功,打印响应的内容
  cat(content(response, as = "text"))
} else {
  # 如果失败,打印错误信息
  cat("Request failed with status code: ", http_status(response)$status_code)
}

请注意,这里使用了use_proxy函数来设置代理服务器,而不是通过配置列表。同时,代码中的URL和代理服务器信息都是可以配置的。