Olá Edson,
Uma opção seria utilizar a biblioteca BeautifulSoup ou a inscriptis para extrair o texto.
Exemplo com BeautifulSoup:
import requests
from bs4 import BeautifulSoup
def getContent(url):
page = requests.get(url)
soup = BeautifulSoup(page.text)
# Removendo conteúdos de script e style
for script in soup(["script", "style"]):
script.extract()
# Pega apenas o texto
text = soup.get_text()
# Remove os espaços
lines = [line.strip() for line in text.splitlines() if len(line.strip()) > 0]
return "\n".join(lines)
Exemplo com inscriptis:
from urllib.request import urlopen
from inscriptis import get_text
def getContent(url):
content = urlopen(url).read().decode()
# Pega apenas o texto
text = get_text(content)
# Remove os espaços
lines = [line.strip() for line in text.splitlines() if len(line.strip()) > 0]
return "\n".join(lines)
Resultado:
url = 'https://cursos.alura.com.br/forum/topico-programa-para-mostrar-somente-o-conteudo-de-dados-de-texto-da-pagina-web-associada-ou-seja-sem-tags-101339'
print(getContent(url))
Saída do BeautifulSoup
Programa para mostrar somente o conteúdo de dados de texto da página Web associada (ou seja, sem tags). | Python | Alura - Cursos online de tecnologia
Ainda não tem acesso? Estude com a gente!
Matricule-se
Login
Qual curso procura?
Buscar
Ainda não tem acesso? Estude com a gente!
Matricule-se
Login
Fórum
Programa para mostrar somente o conteúdo de dados de texto da página Web associada (ou seja, sem tags).
Programação
Python
2 dias atrás
Edson
(43.8k xp, 147 posts)
Implemente a função getContent(), que aceite como entrada um URL (como uma string) e mostre somente o conteúdo de dados de texto da página Web associada (ou seja, sem tags). Evite mostrar linhas em branco que venham após outra linha em branco e remova o espaço em branco em cada linha mostrada.
from urllib.request import urlopen
from re import findall
def getContent(url):
content = urlopen(url).read().decode()
Imagino que precisemos usar regex para remover as tags.
Alguma ideia?
Confira mais conteúdo com nossos artigos sobre Programação. Conheça nossos cursos de
Programação.
Comece pela nossa formação de
Java,
.NET,
Jogos com Unity,
entre outros!
Matricule-se
Sobre a Alura
Dúvidas frequentes
Sugira um curso
Sugira uma funcionalidade
Blog da Alura
Acompanhe-nos
Apps
Saída do inscriptis
Ainda não tem acesso? Estude com a gente! Matricule-se
Login
Qual curso procura? Buscar
Ainda não tem acesso? Estude com a gente! Matricule-se
Login
Fórum
Programa para mostrar somente o conteúdo de dados de texto da página Web associada (ou seja, sem tags).
1. Programação
2. Python
2 dias atrás
Edson
( 43.8k xp , 147 posts )
Implemente a função getContent(), que aceite como entrada um URL (como uma string) e mostre somente o conteúdo de dados de texto da página Web associada (ou seja, sem tags). Evite mostrar linhas em branco que venham após outra linha em branco e remova o espaço em branco em cada linha mostrada.
from urllib.request import urlopen from re import findall def getContent(url): content = urlopen(url).read().decode()
Imagino que precisemos usar regex para remover as tags. Alguma ideia?
Confira mais conteúdo com nossos artigos sobre Programação. Conheça nossos cursos de Programação.
Comece pela nossa formação de Java, .NET, Jogos com Unity, entre outros!
Matricule-se
* Sobre a Alura
* Dúvidas frequentes
* Sugira um curso
* Sugira uma funcionalidade
* Blog da Alura
Acompanhe-nos
* Apps
Espero ter ajudado, qualquer dúvida é só falar!