Python - Extraer texto de una web

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Extraer texto de una web

Publicado por Josafat (18 intervenciones) el 26/10/2018 16:43:02
Hola que tal, alguien como extraer el texto de una web, lo estoy haciendo con la librería de beautifulsoup, pero además de extraer el texto, extrae partes de código css y/o java script, solo me interesa extraer el texto para hacer después un indice invertido

Este es mi codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/python
# -*- coding: utf8 -*-
import io
import sys, re, string
import bs4 as bs
from bs4 import BeautifulSoup
import urllib.request
 
# ingreso de la url
dr = input("Ingresa la url a consultar: ")
url = dr
 
# Conversion de html a texto plano.
texto=BeautifulSoup(urllib.request.urlopen(url)).get_text()
print(texto)
print("\n")
# Remplazo todos los caracteres ASCII de puntuacion por espacios e inicializa el Array
palabrasArray = re.sub('[%s]' % re.escape(string.punctuation), ' ', texto).split()
file = open("cont.txt", "w")
 
file.write(' '.join(palabrasArray).strip("',"))
# Orden sin repeticion de todos los elementos del Arreglo
numero = 0
for i in sorted(set(palabrasArray)):

    # Imprime solo las palabras con caracteres alfabeticos.
    if (i.isalpha() == True):
        f = io.open("palabras.txt", mode="w", encoding="utf8")
        numero += 1
        #print("%.3d %s" % (numero, i))
        f.write("%.3d %s" % (numero, i))
        f.close()

palabra = input("Palabra a buscar:")
#archivo = raw_input("Archivo >> ")
archivo ="palabras.txt"

repetidas = 0
f = open(archivo)
lines = f.readlines()
for line in lines:
    palabras = line.split(' ')
    for p in palabras:
        if p==palabra:
            repetidas = repetidas+1

print ("la palabra \"{0}\" se repite {1} veces en el Archivo {2}".format(palabra,repetidas,archivo))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder