代码:
<br />
#下载复权因子数据<br />
#<br />
require('XML')<br />
require('bitops')<br />
require('RCurl')<br />
symbol<-readLines("symbol.txt", n=2571)#获取股票代码<br />
year<-readLines("year.txt", n=24)#1990-2013<br />
jidu<-c("4", "3", "2", "1")#季度</p>
<p>l1<-"http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_FuQuanMarketHistory/stockid/"<br />
l2<-".phtml?year="<br />
l3<-"&jidu="<br />
dim<-c(1,8)<br />
for (i in 1:2571)<br />
{<br />
sym=symbol[i]<br />
cat('begin\t',sym,'\t',i,'\n')<br />
for (y in year)<br />
{<br />
for (jd in jidu)<br />
{<br />
cat(sym,'\t',i,'\t',y,'\t',jd,'\n')<br />
link<-paste(l1,sym,l2,y,l3,jd,sep="")<br />
my.doc <-htmlParse(link)<br />
my.node<-getNodeSet(my.doc,"//table")<br />
while (length(my.node)==0)#反复链接网站,直到成功为止<br />
{<br />
my.doc <-htmlParse(link)<br />
my.node<-getNodeSet(my.doc,"//table")<br />
}<br />
my.tab <-readHTMLTable(my.node[[20]])<br />
l = length(my.tab$V1)<br />
if (l<3)<br />
{<br />
next<br />
}<br />
symlist<-rep(sym,times=l-2)<br />
tab<-my.tab[3:l,dim]<br />
tab$s<-symlist#生成数据表<br />
f<-paste("factor/",sym,".txt",spe="")#写入文件<br />
write.table(tab,file=f,append=TRUE,quote=FALSE,sep=',',row.names=F,col.names=F)<br />
}<br />
}<br />
cat('end\t',sym,'\n')<br />
}<br />
以上代码可以成功运行,不过消耗内存随时间线性增长,求大神修改[s:11]
</p>