Gilmar Soares
Publicado em:

ter 13 maio 2014

←Home

Exemplo de como "Parsear" Sites com BeautifulSoup

Parseando Sites com BeautifulSoup

Como "pegar" informações de Sites com BeautifulSoup?

Vamos falar nesse artigo do Beautifulsoup, biblioteca Python necessária para fazer “parse” de sites.

Para iniciarmos o exemplo será necessário instalar a biblioteca Python Beautifulsoup no seu ambiente, e assumo que o leitor tenha PIP instalado, então segue comando para instalação:

$ pip install beautifulsoup4

A partir desse momento vamos começar a trabalhar com o Beautifulsoup.

Imaginamos que você tenha que fazer parse de um simples site, e que este tenha apenas esse arquivo html:

$       arquivo_html = ”””<html>
$         <head>
$          <title>
$               Exemplo de Beautifulsoup
$          </title>
$         </head>
$         <body>
$          <p class="title">
$               <b>
$               Exemplo de Beautifulsoup
$               </b>
$          </p>
$          <p class="story">
$               Vamos fazer "parses" desse simples exemplo de html com Beautifulsoup.
$               <a class="sister" href="http://examplo.com/link1" id="link1">
$               Link1
$               </a>
$               ,
$               <a class="sister" href="http://examplo.com/link2" id="link2">
$               Link2
$               </a>
$               and
$               <a class="sister" href="http://examplo.com/link2_teste" id="link2">
$               Link3 Test
$               </a>
$               ; Vamos lá!!!!!!!!!!!!!!!!!!!!!
$          </p>
$          <p class="story">
$               ...
$          </p>
$         </body>
$        </html>”””

Vamos fazer nossa biblioteca ler nossa variavel html, dessa forma:

$ soup = BeautifulSoup(arquivo_html )

Pronto! Assim como tudo em Python… é simples :)

Agora podemos trabalhar com todo o conteúdo HTML a partir dos métodos da biblioteca.

Para o título:

$ soup.title: este comando irá trazer o seguinte: => <title>Exemplo de Beautifulsoup</title>

Para as informações desse título:

$ soup.title.string: este comando irá trazer o seguinte => Exemplo de Beautifulsoup

Para os “P” de HTML:

$ soup.p: este comando irá trazer o seguinte => <p class="title"><b>Exemplo de Beautifulsoup</b></p>

Para pegar o nome da classe usada no “P”:

$ soup.p['class']: este comando irá trazer o seguinte => u'title'

Vamos agora demonstrar como fazer uma busca no documento HTML, digamos que tenhamos a necessidade de pegar todos os <a></a> do nosso arquivo HTML, então usaremos o Beautifulsoup da seguinte maneira:

$ soup.find_all('a'): este comando irá trazer o seguinte =>
$ [
$ <a class="sister"href="http://examplo.com/link1" id="link1">Link1</a>
$ <a class="sister" href="http://examplo.com/link2" id="link2">Link2</a>
$ <a class="sister" href="http://examplo.com/link2_teste" id="link2">Link3 Test</a>
$ ]

Vamos deixar essa busca mais elaborada, vamos buscar um ID especifico do nosso arquivo HTML dessa forma:

$ soup.find(id="link1"): este comando irá trazer o seguinte =>
$ <a class="sister"href="http://examplo.com/link1" id="link1">Link1</a>

Bom, esta é uma pequena explicação de como funciona o Beautifulsoup. Caso tenham interesse em algo mais especifico, eu utilizei em produção para fazer captura de uns dados, o Script esta no GITHUB no seguinte endereço: https://github.com/linuxsoares/scripts/blob/master/getVerbos.py nesse Script implementei bastante coisa do Beautifulsoup e algumas outras coisas também.

Qualquer dúvida pode entrar em contato:
Topo
comments powered by Disqus