Удалить теги HTML из вывода

Я новичок в python, и у меня возникают проблемы с удалением html-тегов из вывода. Я хотел бы удалить теги и содержимое внутри них. Я также хотел бы удалить теги p. Какие-либо предложения?

import urllib2
from bs4 import BeautifulSoup

# Ask user to enter URL
url = raw_input("Please enter a valid URL: ")

# Make sure file is clear for new content
open('ctp_output.txt', 'w').close()

# Open txt document for output
txt = open('ctp_output.txt', 'w')

# Parse HTML of article, aka making soup
soup = BeautifulSoup(urllib2.urlopen(url).read())

# retrieve all of the paragraph tags
tags = soup('p')
txt.write(str(tag) + '\n' + '\n')

# Close txt file with new content added
txt.close()

person user3285763    schedule 25.02.2014    source источник
comment
Это может быть полезно. /753052/   -  person Manjunath    schedule 25.02.2014


Ответы (1)


Получите текстовую часть тега, используя функцию get_text() вместо строкового представления (str(tag)).

В приведенном выше коде изменение будет заключаться в замене этой строки:

txt.write(str(tag) + '\n' + '\n')

с:

txt.write(tag.get_text() + '\n' + '\n')
person HAL    schedule 25.02.2014
comment
Мне пришлось поместить его в цикл for, чтобы решить проблему с экземпляром ResultSet. Но это работает очень хорошо. Спасибо за помощь! Я бы проголосовал за тебя, если бы мог. - person user3285763; 26.02.2014
comment
Хорошо, что у тебя получилось! Если вы удовлетворены ответом, отметьте ответ как принятый (не нужно голосовать). - person HAL; 26.02.2014