2012-04-19 147 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 2012-04-19 04:50:49

+2

孤立'&'在PCDATA部分无效。 – 2012-04-19 04:54:13

+0

非常感谢你们 – 2012-04-19 05:08:42

回答

1

嗯,我认为这是要走的路,

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

另一种解决方案,在<body>标签读取值,并使用data.split(',')使用Beautifulsoup或您选择的任何库解析。

相关问题