quarta-feira, 10 de setembro de 2014

Olá!

Nos posts 


e

estudamos alguns métodos e propriedades de fazer um web scraping (ou web crawler) com a biblioteca Beautiful Soup. No post de hoje vamos estudar como extraímos as informações contidas em uma tabela dentro do código HTML.

Como terminou a Week 1 da NFL -  Back to Football - vamos capturar as informações das estatísticas de cada time nos jogos desta semana. Nossa fonte de dados será o site:




Veja que, para cada categoria, temos uma tabela com as estatísticas por jogador. É nesta tabela que vamos trabalhar e capturar todos os dados das 13 categorias disponíveis.

Começamos importando as duas bibliotecas necessárias:


Agora, declaramos uma lista com as 12 categorias, nomeamos e abrimos o arquivo .txt que iremos salvar. 


O próximo passo é, para cada categoria, varrer a URL que contém os dados para cada uma. Note que na variável nflLink armazenamos a URL que vamos "crawlear" e inserimos cat para que cada categoria seja percorrida durante o laço for. 

Na sequência, abrimos o link com o método urlopen(), fazemos a leitura do HTML e o decodificamos com o BeautifulSoup. 


Como vimos nos outros posts, o diferencial do BeautifulSoup é poder especificar qual é a tag do HTML que você quer explorar. Na variável table atribuímos o resultado o método soup.find('table'), que retornará todo o HTML relacionado à tag TABLE. Da mesma forma, percorremos as linhas e colunas da tabela (tr  e td) para capturar a informação. Assim, para cada linha e cada coluna, armazenamos os dados separados por um delimitador | e os gravamos no arquivo .txt.

Por fim, temos uma amostra de como ficará nossa saída e o encerramento do código, com o comando file.close() para fechar o arquivo .txt que havíamos aberto.



No nosso GitHub você encontra o código completo no arquivo tableScraping.py.

Um abraço e até o próximo post!


0 comentários:

Postar um comentário