Skip to content

Commit 0e34d0f

Browse files
committed
Parseando
1 parent d4c9b75 commit 0e34d0f

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
Exemplo de como "Parsear" Sites com BeautifulSoup
2+
#################################################
3+
4+
:date: 2014-05-13 22:00
5+
:tags: beautifulsoup
6+
:category: Python
7+
:slug: parseando-sites-com-beautifulsoup
8+
:author: Gilmar Soares
9+
10+
:github: github.com/linuxsoares
11+
12+
13+
=================================
14+
Parseando Sites com BeautifulSoup
15+
=================================
16+
17+
18+
Como "pegar" informações de Sites com BeautifulSoup?
19+
----------------------------------------------------
20+
21+
Vamos falar nesse artigo do Beautifulsoup, biblioteca Python necessária para fazer “parse” de sites.
22+
23+
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:
24+
25+
.. code-block:: bash
26+
27+
$ pip install beautifulsoup4
28+
29+
A partir desse momento vamos começar a trabalhar com o Beautifulsoup.
30+
31+
Imaginamos que você tenha que fazer parse de um simples site, e que este tenha apenas esse arquivo html:
32+
33+
.. code-block:: bash
34+
35+
$ arquivo_html = ”””<html>
36+
$ <head>
37+
$ <title>
38+
$ Exemplo de Beautifulsoup
39+
$ </title>
40+
$ </head>
41+
$ <body>
42+
$ <p class="title">
43+
$ <b>
44+
$ Exemplo de Beautifulsoup
45+
$ </b>
46+
$ </p>
47+
$ <p class="story">
48+
$ Vamos fazer "parses" desse simples exemplo de html com Beautifulsoup.
49+
$ <a class="sister" href="http://examplo.com/link1" id="link1">
50+
$ Link1
51+
$ </a>
52+
$ ,
53+
$ <a class="sister" href="http://examplo.com/link2" id="link2">
54+
$ Link2
55+
$ </a>
56+
$ and
57+
$ <a class="sister" href="http://examplo.com/link2_teste" id="link2">
58+
$ Link3 Test
59+
$ </a>
60+
$ ; Vamos lá!!!!!!!!!!!!!!!!!!!!!
61+
$ </p>
62+
$ <p class="story">
63+
$ ...
64+
$ </p>
65+
$ </body>
66+
$ </html>”””
67+
68+
Vamos fazer nossa biblioteca ler nossa variavel html, dessa forma:
69+
70+
.. code-block:: bash
71+
72+
$ soup = BeautifulSoup(arquivo_html )
73+
74+
Pronto! Assim como tudo em Python… é simples :)
75+
76+
Agora podemos trabalhar com todo o conteúdo HTML a partir dos métodos da biblioteca.
77+
78+
Para o título:
79+
80+
.. code-block:: bash
81+
82+
$ soup.title: este comando irá trazer o seguinte: => <title>Exemplo de Beautifulsoup</title>
83+
84+
Para as informações desse título:
85+
86+
.. code-block:: bash
87+
88+
$ soup.title.string: este comando irá trazer o seguinte => Exemplo de Beautifulsoup
89+
90+
Para os “P” de HTML:
91+
.. code-block:: bash
92+
93+
$ soup.p: este comando irá trazer o seguinte => <p class="title"><b>Exemplo de Beautifulsoup</b></p>
94+
95+
Para pegar o nome da classe usada no “P”:
96+
.. code-block:: bash
97+
98+
$ soup.p['class']: este comando irá trazer o seguinte => u'title'
99+
100+
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:
101+
102+
.. code-block:: bash
103+
104+
$ soup.find_all('a'): este comando irá trazer o seguinte =>
105+
$ [
106+
$ <a class="sister"href="http://examplo.com/link1" id="link1">Link1</a>
107+
$ <a class="sister" href="http://examplo.com/link2" id="link2">Link2</a>
108+
$ <a class="sister" href="http://examplo.com/link2_teste" id="link2">Link3 Test</a>
109+
$ ]
110+
111+
Vamos deixar essa busca mais elaborada, vamos buscar um ID especifico do nosso arquivo HTML dessa forma:
112+
113+
.. code-block:: bash
114+
115+
$ soup.find(id="link1"): este comando irá trazer o seguinte =>
116+
$ <a class="sister"href="http://examplo.com/link1" id="link1">Link1</a>
117+
118+
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:
119+
https://github.com/linuxsoares/scripts/blob/master/getVerbos.py
120+
nesse Script implementei bastante coisa do Beautifulsoup e algumas outras coisas também.
121+
122+
Qualquer dúvida pode entrar em contato:
123+
124+
* Twitter: `@gilmar_soares <https://twitter.com/gilmar_soares>`_
125+
* Facebook: `facebook.com/linux.soares <https://www.facebook.com/linux.soares>`_
126+
127+
128+
129+
130+

0 commit comments

Comments
 (0)