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