2015-11-04 6 views
0

Я пытаюсь очистить, если игрок прав или левой рукой с этой страницы (http://www.atpworldtour.com/en/players/novak-djokovic/d643/fedex-atp-win-loss). Я использовал следующий код, чтобы очистить эту информацию: (1603.html это сохраненная ссылка)Веб-скребок с R в ATPWORLDTOUR

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)? –

ответ

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. –