2012-04-19 15 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(',')を使用して解析し、これは移動するための方法だと思います。

関連する問題