[R-br] Selecionar e copiar conteúdo de página usando apenas o terminal linux
Fernando Mayer
fernandomayer em gmail.com
Quarta Abril 30 19:31:30 BRT 2014
Walmes,
outra opção é dar uma olhada no xclip. Algo como
xclip -out -selection clip > <arquivo.txt>
vai colar o conteúdo do clipboard para o arquivo txt. Talvez de para
eliminar algumas etapas com ele (nunca usei mais do que isso, mas sei que
ele tem loops também). De uma olhada em
http://linuxtidbits.wordpress.com/2008/02/22/command-line-to-clipboard/
---
Fernando de Pol Mayer
Laboratório de Estatística Ambiental - LEA
Instituto de Matemática, Estatística e Física - IMEF
Universidade Federal do Rio Grande - FURG
URL: http://fernandomayer.github.io
e-mail: fernando.mayer [@] {gmail.com, furg.br}
2014-04-30 19:26 GMT-03:00 Alisson Lucrecio <alissonluc em gmail.com>:
> 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
>
>
> 01 23 45 67 89 1011 1213 1415 16Biro Biro 12 Biro Biro AM(L)19 16455 0(1)--
> - -1 60- -6.47 Bruno Vieira5 Bruno Vieira D(R)28 17869 2- -- -- 85.91.5 -
> 7.23 Carlinhos2 Carlinhos D(L)27 17672 2- -- -1 81.11 17.57 Chiquinho17
> Chiquinho AM(C)24 17069 -- -- -- -- -- Darío Conca6 Darío Conca M30 167582
> - -1 -3 85.9- -7.21 Diego Cavalieri10 Diego Cavalieri GK31 19186 2- -- --46.2
> - -6.69 Diguinho8 Diguinho DM(C)31 17170 2- -- -0.5 84.71.5 -7.14 Edwin
> Valencia13 Edwin Valencia M29 18185 0(2)- -- -- 81.81 -6.31 Elivelton9
> Elivelton D21 17981 2- -- -- 74.60.5 -6.86 Felipe16 Felipe GK26 19390 -- -
> - -- -- -- Fred7 Fred FW30 18575 21 2- -3 75.61.5 -7.19 Gum3 Gum D(C)28189
> 86 2- -- -0.5 75.22.5 17.51 Jean11 Jean DM(C)27 17070 2- -- -1 88.6- -6.61Kenedy
> 18 Kenedy FW18 18277 -- -- -- -- -- Rafael Sóbis1 Rafael Sóbis AM(LR),FW28172
> 67 22 -- -3.5 78.81.5 -7.82 Rafinha14 Rafinha M(R)20 17774 0(1)- -- -- 50--
> 6 Wagner4 Wagner AM(C)29 17271 2- -1 -3 90- -7.43 Walter15 Walter FW24 178
> 88 0(1)- -- -- 60- -5.95 Wellington Carvalho19 Wellington Carvalho D21 185
> 84 -- -- -- -- -- Wellington Silva20 Wellington Silva D26 17764 -- -- -- -
> - --
>
>
> ##--------------------------------------##---------------------------####--------------------------------------##---------------------------####--------------------------------------##---------------------------##
>
>
>
> 2014-04-30 15:32 GMT-03:00 walmes . <walmeszeviani em 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 em 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
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140430/2757cd85/attachment-0001.html>
Mais detalhes sobre a lista de discussão R-br