2010-06-21 4 views
1

안녕하세요, 저는 파이썬을위한 libxml을 사용하여 웹 페이지에서 "META"설명을 추출하려고합니다. UTF chars를 만나면 쓰레기 chars를 질식시키고 표시합니다. 그러나 정규식을 통해 데이터를 가져올 때 나는 유니 코드 문자를 얻는다. libxml에 문제가 있습니까?파이썬의 UTF 인코딩 문제 또는 내 libxml?

감사

''' test encoding issues with utf8 ''' 

from lxml.html import fromstring 
from lxml.html.clean import Cleaner 
import urllib2 
import re 

url = 'http://www.youtube.com/watch?v=LE-JN7_rxtE' 
page = urllib2.urlopen(url).read() 


xmldoc = fromstring(page) 
desc = xmldoc.xpath('/html/head/meta[@name="description"]/@content') 
meta_description = desc[0].strip() 

print "**** LIBXML TEST ****\n" 
print meta_description 


print "**** REGEX TEST ******" 
reg = re.compile(r'<meta name="description" content="(.*)">') 
for desc in reg.findall(page): 
    print desc 

OUTPUTS

: 문제가 콘솔 유니 코드 문자의 표시를 지원하지 않는 것을 매우 가능하다

**** LIBXML TEST **** 

My name is Hikakin.<br>I'm Japanese Beatboxer.<br><br>HIKAKIN Official Blog<br>http://ameblo.jp/hikakin/<br><br>ãã³çã³ãã¥<br>http://com.nicovideo.jp/community/co313576<br><br>â»å¾¡ç¨ã®æ¹ã¯Youtubeã®ã¡ãã»ã¼ã¸ã¾ã... 
**** REGEX TEST ****** 
My name is Hikakin.&lt;br&gt;I'm Japanese Beatboxer.&lt;br&gt;&lt;br&gt;HIKAKIN Official Blog&lt;br&gt;http://ameblo.jp/hikakin/&lt;br&gt;&lt;br&gt;ニコ生コミュ&lt;br&gt;http://com.nicovideo.jp/community/co313576&lt;br&gt;&lt;br&gt;※御用の方はYoutubeのメッセージまた... 

답변

1

이 정보가 도움이됩니까?

xmldoc = fromstring(page.decode('utf-8')) 
+1

정말 고마워 – James

0

. 출력을 파일로 파이핑 한 다음 유니 코드를 표시 할 수있는 파일로 열어보십시오.

0

는 LXML에서는 파서 인코딩을 통과해야합니다. HTML/XML 구문 분석의 경우 :