
Caro Walmes, Boa noite. Eu tenho um solução com python. Segue o códigos e o scrip que fiz no ipython notebook. Depois vc poderia salvar em csv e rodar a estatística com R. Att. ##--------------------------------------##---------------------------####--------------------------------------##---------------------------####--------------------------------------##---------------------------## from ghost import Ghost from bs4 import BeautifulSoup as bs import regex import pandas page = ghost.open("http://www.whoscored.com/Teams/1232") soup = bs(ghost.content) table = soup.find('tbody', { "id" : "team-squad-stats-summary-content" }) players = table.findAll('tr') data_all = {} for player in players: cols = player.findAll('td') data = [col.get_text() for col in cols] data_all[data[2]] = data pandas.DataFrame(data_all).T 012345678910111213141516Biro Biro12Biro BiroAM(L)19164550(1)----160--6.47Bruno Vieira5Bruno VieiraD(R)28178692-----85.91.5-7.23Carlinhos2CarlinhosD(L)27176 722----181.1117.57Chiquinho17ChiquinhoAM(C)2417069----------Darío Conca6Darío ConcaM30167582--1-385.9--7.21Diego Cavalieri10Diego CavalieriGK31191862----- 46.2--6.69Diguinho8DiguinhoDM(C)31171702----0.584.71.5-7.14Edwin Valencia13Edwin ValenciaM29181850(2)-----81.81-6.31Elivelton9EliveltonD21179812-----74.60.5- 6.86Felipe16FelipeGK2619390----------Fred7FredFW3018575212--375.61.5-7.19Gum 3GumD(C)28189862----0.575.22.517.51Jean11JeanDM(C)27170702----188.6--6.61 Kenedy18KenedyFW1818277----------Rafael Sóbis1Rafael SóbisAM(LR),FW281726722 ---3.578.81.5-7.82Rafinha14RafinhaM(R)20177740(1)-----50--6Wagner4Wagner AM(C)29172712--1-390--7.43Walter15WalterFW24178880(1)-----60--5.95Wellington Carvalho19Wellington CarvalhoD2118584----------Wellington Silva20Wellington SilvaD2617764---------- ##--------------------------------------##---------------------------####--------------------------------------##---------------------------####--------------------------------------##---------------------------## 2014-04-30 15:32 GMT-03:00 walmes . <walmeszeviani@gmail.com>:
Saudações,
Preciso ler os dados de uma página mas da forma tradicional, usando XML para o exame e retenção dos dados eu não consigo. Os dados são de altura, idade, peso, enfim, de jogadores de futebol do campeonato brasileiro. Estão disponíveis nessa página, por exemplo, para o Fluminense
*http://www.whoscored.com/Teams/1232 <http://www.whoscored.com/Teams/1232>*
O que me interessa é a tabela com o nome dos jogadores, dados biométricos e esportivos. Um selecionar e copiar dessa porção que me interessa traz esse conteúdo.
R Name Pos Age cm kg Apps Goal A Yel Red SpG PS% AW MoM Rt 1 Rafael Sóbis AM(LR),FW 28 172 67 2 2 - - - 3.5 78.8 1.5 - 7.82 2 Carlinhos D(L) 27 176 72 2 - - - - 1 81.1 1 1 7.57 3 Gum D(C) 28 189 86 2 - - - - 0.5 75.2 2.5 1 7.51 4 Wagner AM(C) 29 172 71 2 - - 1 - 3 90 - - 7.43 5 Bruno Vieira D(R) 28 178 69 2 - - - - - 85.9 1.5 - 7.23 6 Darío Conca M 30 167 58 2 - - 1 - 3 85.9 - - 7.21 7 Fred FW 30 185 75 2 1 2 - - 3 75.6 1.5 - 7.19 8 Diguinho DM(C) 31 171 70 2 - - - - 0.5 84.7 1.5 - 7.14 9 Elivelton D 21 179 81 2 - - - - - 74.6 0.5 - 6.86 10 Diego Cavalieri GK 31 191 86 2 - - - - - 46.2 - - 6.69 11 Jean DM(C) 27 170 70 2 - - - - 1 88.6 - - 6.61 12 Biro Biro AM(L) 19 164 55 0(1) - - - - 1 60 - - 6.47 13 Edwin Valencia M 29 181 85 0(2) - - - - - 81.8 1 - 6.31 14 Rafinha M(R) 20 177 74 0(1) - - - - - 50 - - 6 15 Walter FW 24 178 88 0(1) - - - - - 60 - - 5.95 16 Felipe GK 26 193 90 - - - - - - - - - - 17 Chiquinho AM(C) 24 170 69 - - - - - - - - - - 18 Kenedy FW 18 182 77 - - - - - - - - - - 19 Wellington Carvalho D 21 185 84 - - - - - - - - - - 20 Wellington Silva D 26 177 64 - - - - - - - - - -
Quando eu peço o código fonte da página (acesso pelo botão direito do mouse no navegador firefox), não aparecem esses valores lá. Se aparecessem dava para usar o XML. Pelo jeito os dados são trazidos por uma consulta à uma base de dados on the fly para colocar na página. A única forma que eu sei de pegar é copiando para área de transferência.
Eu tenho feito assim: 1. Abro a página de cada time no navegador e dou ctrol+a para selecionar todo o conteúdo; 2. Dou ctrol+c para copiar o conteúdo para área de transferência; 3. Dou control+v dentro de um arquivo texto; 4. Leio o arquivo texto no R, elimino a sujeira, organizo em colunas até chegar um data.frame.
O que eu quero é substituir passos gráficos de 1 à 3 por algum comando do teminal linux que pudesse pegar a URL que eu passar e salvar o conteúdo em um aquivo que eu der o nome. Com isso elimino intervenção humana e rapidamente baixo todos os times, de todos os torneios para ter excelentes dados para trabalhar em aula. Se alguém se interessar, os dados da liga européia (56 times) que peguei no braço estão em
*http://www.leg.ufpr.br/~walmes/data/euro_football_players.txt <http://www.leg.ufpr.br/~walmes/data/euro_football_players.txt>*
Dei umas googladas e vi alguns comandos que, infelizmente, ainda não trazem o que eu preciso, como
*sudo apt-get install lynx* *lynx -dump http://www.whoscored.com/Teams/1232 <http://www.whoscored.com/Teams/1232>*
O recorte do resultado do comando está abaixo.
View: [41]Overall [42]Home [43]Away
R Name Pos Age cm kg Apps Goal A Yel Red SpG PS% AW MoM Rt <------ a tabela que eu queria era pra estar *Players shaded are players who are not currently active in team. <------ entre essas duas linhas, mas não. (Loaned, sold, etc..)
Tournaments: [44]Brasileirão
View: [45]Overall [46]Home [47]Away
Caso alguém tenha algum caminho a apontar, fico grato. Walmes.
========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 skype: walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Alisson Lucrecio da Costa