2012-04-19 9 views
2

아래 코드는 HTML을 구문 분석하므로 앰퍼샌드가 데이터에 나타날 때 문제가 발생합니다.쉼표로 구분 된 문자열도 앰퍼샌드를 분할합니다.

from HTMLParser import HTMLParser 

data = '<HTML><meta http-equiv="Pragma" content="no-cache"></head>'\ 
'<body>107,1,236,1000,70,498,NameA NameB & NameC - ActionA ActionB</body></html>' 

class MyHTMLParser(HTMLParser): 
     def handle_data(self, data): 
      print data.split(',') 

parser = MyHTMLParser() 
parser.feed(data) 

그것은 단지 쉼표 대신 '&을'분할되어
출력.

['107', '1', '236', '1000', '70', '498', 'NameA NameB '] 
['&'] 
[' NameC - ActionA ActionB'] 

감사

+2

쉼표로만 나뉩니다. HTML 구문 분석기는 별도의 토큰으로 "&"를 처리합니다. – yak

+2

유일한 '&'는 PCDATA 섹션에서 유효하지 않습니다. –

+0

많은 감사 인사 –

답변

1

잘 나는

data2 = data.replace('&', 'and') 
0

대체 솔루션, <body> 태그에서 값을 가져오고 BeautifulSoup로 또는 당신의 선택의 어떤 라이브러리를 사용하여 data.split(',')를 사용하여 구문 분석이 갈 수있는 방법이라고 생각 .