r
  • web-scraping
  • 2015-11-04 74 views 0 likes 
    0

    如果玩家是右手或左手從本頁面(http://www.atpworldtour.com/en/players/novak-djokovic/d643/fedex-atp-win-loss),我試圖刮。我用下面的代碼來湊這個信息:(1603.html是保存的鏈接)在ATPWORLDTOUR中用R刮網頁

    y <- htmlParse('1603.html') 
    x <- xpathApply(y,"//div[@class='player-profile-hero-table']") 
    sapply(x,xmlValue) 
    

    代碼返回我下面的:

    "Age\r\n\t\t\t\t\t\t\t\t\r\n28\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t(1987.05.22)\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tTurned Pro\r\n\t\t\t\t\t\t\t\t\r\n2003\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tWeight\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t172lbs(78kg)\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tHeight\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t6'2\"(188cm)\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\r\n\t\t\tBirthplace\r\n\t\t\r\n\t\t\r\n\t\t\tBelgrade, Serbia\r\n\t\t\r\n\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tResidence\r\n\t\t\t\t\t\t\t\tMonte-Carlo, Monaco\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\r\n\t\t\tPlays\r\n\t\t\r\n\t\t\r\nRight-Handed, Two-Handed Backhand\t\t\r\n\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\tCoach\r\n\t\t\r\n\t\t\tBoris Becker, Marian Vajda" 
    

    我能做些什麼來消除所有這個字母T的和r在結果的中間?要知道玩家是右手還是左手,我認爲x應該定義爲:x < - xpathApply(y,「// table [@ width ='570']」)。我該怎麼辦?

    +2

    您是否注意到頁面底部:**本網站的任何部分不得以任何方式或以任何方式(包括影印,錄製或存儲在任何媒介通過電子手段),未經ATP Tour,Inc. **的書面許可。您使用的數據是否符合[條款和條件](http://www.atpworldtour.com/en/terms-and-conditions)? – 2015-11-05 00:51:41

    回答

    0

    一個解決方案是使用美妙的readHTMLTable()從頁面獲取所有表格,然後選擇正確的表格和單元格以獲取信息。

    該函數獲取URL,右手返回「R」,左手返回「L」。它通過選擇第一個表格,第三列的第二行,然後使用substr來獲取第16個字符。你可以將它適應任何你喜歡的。

    scrapey <- function(URL){ 
    x <- readHTMLTable(URL,header=F, stringsAsFactors=F); 
    substr(x[[1]][2,3],16,16)} 
    
    +0

    非常感謝Derwin。 –

    相關問題