在r中使用XML更有效地解析来自多个网页的数据

在r中使用XML更有效地解析来自多个网页的数据,xml,r,for-loop,Xml,R,For Loop,这个问题指的是我能够实现我想要的,但我想知道是否有更好、更有效的方法。i、 e.一种需要更少内存才能完成且更快的解决方案 我试图把板球运动员在每场比赛中的个人表现数据集放在一起。在这里,我只关注击球结果。这些数据可在cricinfo网站上获得。使用他们的搜索引擎可以在一个页面上显示多达200个单独的结果。对于这组特殊的表演(T20——这是一种板球比赛),45页上列出了8890场表演。除最后一页有90页外,所有页面都有200页 我存储了所有45页的URL,如下所示: library(XML) n

这个问题指的是我能够实现我想要的,但我想知道是否有更好、更有效的方法。i、 e.一种需要更少内存才能完成且更快的解决方案

我试图把板球运动员在每场比赛中的个人表现数据集放在一起。在这里,我只关注击球结果。这些数据可在cricinfo网站上获得。使用他们的搜索引擎可以在一个页面上显示多达200个单独的结果。对于这组特殊的表演(T20——这是一种板球比赛),45页上列出了8890场表演。除最后一页有90页外,所有页面都有200页

我存储了所有45页的URL,如下所示:

library(XML)

nums<-1:45
urls<-paste("http://stats.espncricinfo.com/ci/engine/stats/index.html?class=3;filter=advanced;orderby=batted_score;page=",
            nums,";size=200;template=results;type=batting;view=innings", sep="")

urls   #45 urls 
names(urls) <- paste("x",nums,sep="")  #out of habit, I named them
以下内容将所有内容合并为一个数据帧,并删除了2个无意义的列:

T20.bat<-do.call("rbind", results.tables)
T20.bat<-T20.bat[c(1:8,10:12)]
head(T20.bat)

#            Player Runs Mins BF 4s 6s     SR Inns     Opposition       Ground  Start Date
#1   AJ Finch (Aus)  156   70 63 11 14 247.61    1      v England  Southampton 29 Aug 2013
#2 BB McCullum (NZ)  123   72 58 11  7 212.06    1   v Bangladesh    Pallekele 21 Sep 2012
#3     RE Levi (SA) 117*   67 51  5 13 229.41    2  v New Zealand     Hamilton 19 Feb 2012
#4    CH Gayle (WI)  117   75 57  7 10 205.26    1 v South Africa Johannesburg 11 Sep 2007
#5 BB McCullum (NZ) 116*   87 56 12  8 207.14    1    v Australia Christchurch 28 Feb 2010
#6   AD Hales (Eng) 116*   97 64 11  6 181.25    2    v Sri Lanka   Chittagong 27 Mar 2014

T20.bath您看过
readhtmlist
了吗?另外,在
XML
中有一些
*apply
类型函数可能会有所帮助。我还可以通过并行
循环
/
apply
执行此类任务,拆分URL,并使用多个核心。效率不高,但可以缩短时间。
T20.bat<-do.call("rbind", results.tables)
T20.bat<-T20.bat[c(1:8,10:12)]
head(T20.bat)

#            Player Runs Mins BF 4s 6s     SR Inns     Opposition       Ground  Start Date
#1   AJ Finch (Aus)  156   70 63 11 14 247.61    1      v England  Southampton 29 Aug 2013
#2 BB McCullum (NZ)  123   72 58 11  7 212.06    1   v Bangladesh    Pallekele 21 Sep 2012
#3     RE Levi (SA) 117*   67 51  5 13 229.41    2  v New Zealand     Hamilton 19 Feb 2012
#4    CH Gayle (WI)  117   75 57  7 10 205.26    1 v South Africa Johannesburg 11 Sep 2007
#5 BB McCullum (NZ) 116*   87 56 12  8 207.14    1    v Australia Christchurch 28 Feb 2010
#6   AD Hales (Eng) 116*   97 64 11  6 181.25    2    v Sri Lanka   Chittagong 27 Mar 2014