【发布时间】:2018-03-01 07:06:23
【问题描述】:
我想提取下面页面中的表格
https://www.mcxindia.com/market-data/spot-market-price
我尝试了 rvest 和 RCurl,但在这两种情况下,下载的页面与我在浏览器中看到的不同。我假设存在某种我无法检测或遵循的重定向形式
任何帮助将不胜感激
PS:对phantomjs不感兴趣
这是我到目前为止所尝试的:
1. HTTR
base_url <- "https://www.mcxindia.com/market-data/spot-market-price"
ua <- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
library(httr)
library(XML)
doc <- POST(base_url,user_agent(ua),set_cookies(`_ga` = "GA1.2.543290785.1505100652",`_gid`="GA1.2.1409943545.1505881384",`_gat`="1"))
doc <- htmlParse(doc)
poptable<-readHTMLTable(doc,which=7)
结果:未找到数据!!!!
2。 RCurl
library(RCurl)
curl <- getCurlHandle()
curlSetOpt(curl = curl,
ssl.verifypeer = FALSE,
useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
timeout = 60,
followlocation = TRUE,
cookiejar = "./cookies",
cookiefile = "./cookies")
newDoc = getURL("https://www.mcxindia.com/market-data/spot-market-price", curl=curl)
newDoc <- htmlParse(newDoc)
poptable<-readHTMLTable(newDoc,which=7)
结果:未找到数据!!!!
我也很想知道如何获取 excel 文件(见小 excel 图标)
【问题讨论】:
-
您是否有理由明确排除 PhantomJS 作为解决方案?在某些情况下,如果没有 PhantomJS、RSelenium 或类似的东西,根本不可能抓取数据。不调查它可能无法解决您的问题
-
@TomS 这是我们环境中不允许使用 phantomJS 的系统要求。可以使用 rvest。完成代码后,我将发布答案。我很接近....
-
但是你知道与例如相反RSelenium PhantomJS 不需要任何类型的安装,对吗?我的工作机器也没有管理员权限,但它可以工作。但是 - 如果您接近仅使用 rvest(或例如 httr)的解决方案,我很乐意阅读和学习,因为我在这方面基本上缺乏知识:)。