HTML (HyperText Markup Language) é linguagem de marcação de hipertexto padrão para criação de páginas para a internet. Um script em html é um conjunto de instruções que diz ao seu navegador web (o interpretador da linguagem) como deverá ser montada uma página no monitor do seu PC. Sua principal função é marcar e definir a estrutura de uma página na web. Tags são os marcadores.
Depois, na linha 10, carregamos na variável ‘response’ o primeiro item da tupla, o documento html, de um dos canais, cnn, veja ou yahoo. Na linha seguinte, convertemos o documento numa estrutura BeautifulSoup, com todos os seus objetos identificados e, por isso, facilmente acessíveis.
No laço de repetição for, linha 13, cada texto dentro da estrutura BeautifulSoup com tag html ‘h3’ para cnn e yahoo, ou ‘h2’ para veja, é capturado e mostrado no terminal do VSCode. Assim, teremos uma lista com as manchetes do canal de notícias que quisermos.
Poderíamos automatizar ainda mais nosso scrapper incluindo um temporizador que atualizaria a lista toda hora cheia, disparando o programa; ou fazer essa raspagem em mais de um canal e deletando notícias semelhantes. Dá para criar também uma WordCloud (nuvem de palavras) com as palavras que mais aparecerem nas manchetes dos principais canais de notícias na web. São muitas as possibilidades.
2. Experimentos com páginas html
Um script para o leitor fazer experimentos com documentos html requisitados na web, usando a biblioteca BeautifulSoup.
# pip install bs4
from bs4 import BeautifulSoup
html = “””
<html>
<head>
<title>
My Page
</title>
</head>
<body>
<div class=”city”>
<p> My first paragraph. </p> <p> My second paragraph. </p>
</div>
</body>
</html> “””
soup = BeautifulSoup(html, ‘html.parser’)
# mostra todo o documento html
print(soup.prettify())
# texto na primeira tag ‘p’, o primeiro paragrafo
print(soup.find(‘p’).text) # My first paragraph.
# lista com os todos os paragrafos
print(soup.find_all(‘p’)) # [<p> My first paragraph. </p>, <p> My second paragraph. </p>]
# lista com todas as tags class=”city”
print(soup.find_all(class_=’city’)) # [<div class=”city” … </div>]
# o texto na tag div class=”city”
print(soup.find(“div”, attrs={“class”: “city”}).text) # My first paragraph. My second paragraph.