2013-08-27 3 views
1

내 질문에, 내가 html 태그 와 난 그냥 해당 문자열 예에서 실제 텍스트 값 싶어 포함 된 문자열 매우 간단해야한다 :파이썬, HTML 문서의 텍스트 값을 얻을

HTML 문자열을 :

<strong><p> hello </p><p> world </p></strong> 

텍스트 값 : 안녕하세요 세계

그렇게 할 수있는 기능이 있습니까? 당신이 nltk를 사용할 수

from bs4 import BeautifulSoup 


text = "<strong><p> hello </p><p> world </p></strong>" 

soup = BeautifulSoup(text) 
print soup.get_text() # prints " hello world " 

또는 :

답변

3

당신은 BeautifulSoupget_text() 기능을 사용할 수 있습니다

import nltk 


text = "<strong><p> hello </p><p> world </p></strong>" 
print nltk.clean_html(text) # prints "hello world" 

또 다른 옵션은 html2text을 사용하는 것입니다,하지만 조금 defferently 동작 : 예를 들어, strong*으로 바뀝니다. 도움이 Extracting text from HTML file using Python

희망 :

또한 관련 스레드를 참조하십시오.

+0

감사합니다 BeautifulSoup의 기능은 잘 작동하지만 결과 오류를내는 결과 텍스트를 인쇄하려고하면 질문이 하나 더 생깁니다. UnicodeEncodeError : 'ascii'코덱이 u '\ xe9'문자를 47 위치에 인코딩 할 수 없습니다. (128), ps : 악센트가 들어있는 프랑스어 텍스트로 작업하고 있습니다 –

+2

여기 해결책을 찾지 않아도됩니다. http://stackoverflow.com/questions/9942594/unicodeencodeerror-ascii-codec-cant-encode-character- u-xa0-in-position-20 –

관련 문제