如何使用RCurl和xFF1F获取数据;

如何使用RCurl和xFF1F获取数据;,r,rcurl,R,Rcurl,我想通过Rcurl获取数据,当我下载网页时,我想要的数据不在文件中,我如何获取它,任何线索都将不胜感激 require(RCurl) url="http://hk.ishares.com/product_info/fund/holdings/SEHK/2823.htm?ls=true& l=en&periodCd=d" data=getURL(url) write(file="data.html",data) 您在web上看到的以下数据不在data.html中,如何获取 %

我想通过Rcurl获取数据,当我下载网页时,我想要的数据不在文件中,我如何获取它,任何线索都将不胜感激

require(RCurl)
url="http://hk.ishares.com/product_info/fund/holdings/SEHK/2823.htm?ls=true&  l=en&periodCd=d"
data=getURL(url)
write(file="data.html",data)
您在web上看到的以下数据不在data.html中,如何获取

% Net Assets    Name    Exchange Ticker     Trading Exchange    SEDOL   Market Price    
(HKD equivalent)    Shares Held     Market Value  
(HKD equivalent)    Sector   
9.17    PING AN INSURANCE (GROUP) CO. OF C  601318  XSHG    B1SVWB6     50.40       81,991,646  4,132,780,718   Financials  
6.25    CHINA MERCHANTS BANK CO. LTD A  600036  XSHG    6518723     12.41     227,242,375   2,819,477,954   Financials  
4.86    SHANGHAI PUDONG DEVELOPMENT BANK C  600000  XSHG    6182043     9.15    239,651,727     2,192,915,873   Financials

你的RCurl拉基本上只是下载你连接到它的任何东西。因此,您的输出结果就是该页面底层的HTML。在帮助您方面,我在语言方面处于劣势(我不会说或读中文),但从我在页面源代码中看到的情况来看,似乎所有数据都是使用JavaScript调用的。在执行
getURL()
时,最终得到的是实际JavaScript的副本,而不是数据

最好的解决方案是确定是否有某种API可以让您提取实际数据,而不仅仅是复制HTML本身。我不确定他们是否提供这种服务。然而,另一个完全可行的选择是以电子表格的形式获取数据。看起来有一种方法可以抓取包含数据的CSV文件。您可以获取它,然后使用
readlines()
或类似的方法将其解析为数据。我有时会抓取CSV数据用于工作,并使用以下方法将其放入数据框中:

out <- postForm("https://the.api.com/api", token="abcd", format="csv")
mydf <- read.table(textConnection(out),header=TRUE,sep=",",quote="\"")

out您的RCurl pull基本上只下载您连接到它的任何内容。因此,您的输出结果就是该页面底层的HTML。在帮助您方面,我在语言方面处于劣势(我不会说或读中文),但从我在页面源代码中看到的情况来看,似乎所有数据都是使用JavaScript调用的。在执行
getURL()
时,最终得到的是实际JavaScript的副本,而不是数据

最好的解决方案是确定是否有某种API可以让您提取实际数据,而不仅仅是复制HTML本身。我不确定他们是否提供这种服务。然而,另一个完全可行的选择是以电子表格的形式获取数据。看起来有一种方法可以抓取包含数据的CSV文件。您可以获取它,然后使用
readlines()
或类似的方法将其解析为数据。我有时会抓取CSV数据用于工作,并使用以下方法将其放入数据框中:

out <- postForm("https://the.api.com/api", token="abcd", format="csv")
mydf <- read.table(textConnection(out),header=TRUE,sep=",",quote="\"")

out注意,在该页面上有一个指向的“下载”链接

也许你可以用它来下载数据

我有一个名为
getHoldings.iShares
(将由
getHoldings
调用)的函数,可以从美国网站下载iShares ETF的持有量

我在美国iShares网站上找不到确切的ETF,但这将获得富时中国25指数基金的持股。也许你可以在中文网站上查看并修改它

[警告一句:iShares.com比我跟踪的任何其他ETF网站更频繁地更改其ETF持有量电子表格的格式,因此这可能会在未来中断。]

您首先需要安装


请注意,在该页面上有一个指向的“下载”链接

也许你可以用它来下载数据

我有一个名为
getHoldings.iShares
(将由
getHoldings
调用)的函数,可以从美国网站下载iShares ETF的持有量

我在美国iShares网站上找不到确切的ETF,但这将获得富时中国25指数基金的持股。也许你可以在中文网站上查看并修改它

[警告一句:iShares.com比我跟踪的任何其他ETF网站更频繁地更改其ETF持有量电子表格的格式,因此这可能会在未来中断。]

您首先需要安装