【发布时间】:2018-01-22 08:41:10
【问题描述】:
我相信我在这里遇到了某种代理或防火墙问题。我从网页抓取开始,目前正在浏览我不熟悉的其他人的代码。
下面的代码是从网站中抓取一些数据以修补到数据框中,但是随着网站的更改,旧代码会变得无效。在我在这里的旧帖子中,@alistaire 发布了一个解决方案,但出现了超时错误(可能是由于代理/防火墙问题)。有人建议使用httr::GET 进行更多控制,但我还是有点麻烦。
以前的代码
url = "http://origin.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ONI_v5.php"
page <- readLines(url)
ONI_data_raw <- data.table (readHTMLTable(page, which=8))
headers <- c ("Year", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
setnames(ONI_data_raw, headers)
ONI_data_raw = melt(ONI_data_raw, id.vars = "Year")
names(ONI_data_raw)[2] = "Month"
names(ONI_data_raw)[3] = "ONI_Value"
ONI_data_raw$Month = as.numeric(ONI_data_raw$Month)
ONI_data_raw$ONI_Value= as.numeric(ONI_data_raw$ONI_Value)
ONI_data_raw = subset(ONI_data_raw, ONI_data_raw$Year %in% time )
备用路线
getURL("http://origin.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ONI_v5.php")
[1] "<TITLE>Error</TITLE>\n<BODY>\n<H1>Error</H1>\nFW-1 at fw-ukvpna: Access denied.</BODY>\r\n"
GET("http://origin.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ONI_v5.php")
Response [http://origin.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ONI_v5.php]
Date: 2018-01-22 08:35
Status: 200
Content-Type: text/html
Size: 85 B
<TITLE>Error</TITLE>
<BODY>
<H1>Error</H1>
FW-1 at fw-ukvpna: Access denied.</BODY>
最终目标:理想情况下,我希望将其制成一个表格,用于制作 data.table,并继续使用前面代码的全部部分。在运行中,但任何建议都表示赞赏并乐意提供更多信息。
【问题讨论】:
-
你知道代理服务器吗?你可以在调用
httr::GET之前设置代理服务器
标签: r