Como importar facilmente tabelas de outros sites

Através de APIs é possível buscar informações contidas em tabelas e listas em vários sites na Internet.
Mas… e quando não há uma API disponível?!

O Python tem algumas bibliotecas que, combinadas, permitem importar este tipo de informação para dentro de uma lista.
Depois de instalar as ferramentas necessárias, a “mágica” pode ser feita com uma única linha de código.

Os pacotes necessários são estes:

  1. pandas — estruturas de recuperação de dados para análise e estatística.
  2. lxml — biblioteca de processamento de conteúdo em XML.
  3. beautifulsoup4 — biblioteca de utilitários e funções para “raspar” informações da tela.

Você pode usar o PIP para instalar tudo de uma vez:


sudo pip3 install pandas lxml beautifulsoup4

O que vai ser feito, no exemplo abaixo, é buscar as tabelas de dentro de uma página na internet e criar uma lista com elas.
Feito isto, é fácil acessar e trabalhar com cada uma.
Para testar abra a Python Shell ou o seu editor favorito e rode o seguinte código:


import pandas as pd
tabelas = pd.read_html("https://en.wikipedia.org/wiki/Comparison_of_text_editors")
print(tabelas[0])

Acima, a função print() foi usada para imprimir a primeira tabela capturada.
Se você tiver a curiosidade de visita o site, vai ver que ha outras.
Experimente exibi-las:


print(tabelas[11])

                       0                    1                         2
0                    NaN  Right-to-left (RTL)     Bi-directional (Bidi)
1                   Acme                   No                        No
2                AkelPad                   No                        No
3                Alphatk                    ?                         ?
4               Aquamacs                    ?                         ?
5                   Atom                  Yes                       Yes
6                 BBEdit                   No                        No
7               Bluefish                  Yes                       Yes
8               Brackets                    ?                         ?
9                   Coda                    ?                         ?
10               ConTEXT                    ?                         ?
11        Crimson Editor                    ?                         ?
12         E Text Editor                    ?                         ?
13                    ed                    ?                         ?
14              EditPlus                   No                        No
15                Editra                    ?                         ?
16              EmEditor                   No                        No
17                 Geany                    ?                         ?
18                 gedit                  Yes                       Yes
19             GNU Emacs                  Yes                  Yes[146]
20                 Gobby                    ?                         ?
21                   JED                    ?                         ?
22                 jEdit                   No                        No
23                   JOE                    ?                         ?
24                  JOVE                   No                        No
25                    LE                    ?                         ?
26                  Kate                  Yes                       Yes
27                 KEDIT                   No                        No
28           Komodo Edit                   No                        No
29            Komodo IDE                   No                        No
..                   ...                  ...                       ...
40               NoteTab                    ?                         ?
41                   nvi                    ?                         ?
42            Peppermint                   No                        No
43                  Pico                    ?                         ?
44              PolyEdit                    ?                         ?
45  Programmer's Notepad                   No                        No
46                 PSPad                    ?                         ?
47                   Q10                    ?                         ?
48             RJ TextEd                  Yes                       Yes
49                 RText                    ?                         ?
50                 SciTE                   No                        No
51             SlickEdit                    ?                         ?
52              Smultron                    ?                         ?
53        Source Insight                   No                        No
54           SubEthaEdit                  Yes                       Yes
55          Sublime Text                   No                        No
56           TED Notepad                    ?                         ?
57              TextEdit                  Yes                       Yes
58              TextMate                   No                        No
59               TextPad                    ?                         ?
60          TextWrangler                   No                        No
61    The SemWare Editor                   No                        No
62             UltraEdit                   No                        No
63                 VEDIT                    ?                         ?
64                    vi                    ?                         ?
65                   Vim                  Yes  through terminal support
66    Visual Studio Code                   No                        No
67                XEmacs                    ?                         ?
68                    Yi                    ?                         ?
69                   NaN                  RTL                      Bidi

[70 rows x 3 columns]

Fácil, não é?

Referências

Leia este texto, para saber mais sobre a função:
https://medium.com/@ageitgey/quick-tip-the-easiest-way-to-grab-data-out-of-a-web-page-in-python-7153cecfca58.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 48 outros assinantes

Deixe uma resposta