Skip to content

Instantly share code, notes, and snippets.

@thomaswpp
Created October 6, 2016 04:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thomaswpp/01e24e7cb51bafe93a153e1b013a6b8e to your computer and use it in GitHub Desktop.
Save thomaswpp/01e24e7cb51bafe93a153e1b013a6b8e to your computer and use it in GitHub Desktop.
import requests
from bs4 import BeautifulSoup
#Aqui vamos capturar o html da página:
url = "https://news.netcraft.com"
response = requests.get(url)
#print(response.text)
#Pronto agora que temos o html, precisamos retirar o texto que nós interessa
#vi que o começo de toda notícia utiliza uma div com uma class="entry-content"
#<div class="entry-content">
#Note que uma class geralmente não é única em documentos e temos que observar bem antes de usa-la em
#nossas buscas, mas neste caso seria uma boa opção
#instanciando o objeto soup
soup = BeautifulSoup(response.text, "lxml")
#vamos aqui buscar todas divs, vai retornar uma lista:
lista = soup.findAll("div", {"class":"entry-content"})
#aqui podemos acessar o primeiro elemento dessa div, que será a primeira notícia
#ps: caso você só queira a primeira notícia de fato, basta usar o find em vez de findAll
print(lista[0])
#agora analisando o html podemos ver que temos que acessar os 3 próximos <b>, caso ele exista,
#pode haver caso que a div com essa class que usamos não comece com um texto neste caso não terá nenhuma tag <b>
#interar na lista
for div in lista:
lista_b = div.findAll('b')
#vamos ter que interar em outra lista, é chato for aninhado, mas é o jeito
for b in lista_b:
print(b.string)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment