【问题标题】:Web Scraping / Proxy Issue in RR中的Web抓取/代理问题
【发布时间】: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


【解决方案1】:

我可以在我的计算机上getURL 页面正常,因此您的问题很可能不在代码范围内:某些权限配置或其他内容,或者在尝试多次失败后网站将您列入黑名单。

如果您只是想使用数据,我建议您在浏览器中使用开发人员工具,并将表格的 html 复制粘贴到文本文件中,然后解析文本文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多