根据
标记的出现拆分HTML文档/字符串的最佳方法是什么?我已经给出了我目前在下面的解决方案,但它似乎相当麻烦,并不是所有的容易阅读我认为。我也尝试过regex,但有人告诉我不应该使用regex来解析HTML
for i, br in enumerate(soup.findAll('b')):
line_value = ''
line_values = []
next = br.next
while (next):
if next and isinstance(next, Tag) and next.name == 'br':
line_values.append(line_value)
line_value = ''
else:
stripped_text = ''.join(BeautifulSoup(str(next).strip()).findAll(text=True))
if stripped_text:
line_value += stripped_text
next = next.nextSibling
print line_values
下面是我正在解析的HTML示例:
^{pr2}$以及我代码的当前结果:
[u'09:00 - 11:00', u'CE4817 - LAB- 2A', u'B2043 B2042']
[u'11:00 - 12:00', u'CE4607 - TUT- 3A', u'A1054']
用正则表达式拆分
然后可以从数组中每个返回的字符串中删除其他html标记。在
您可以使用现有函数,如Strip html from strings in python 或者检查我对问题Stripping HTML tags without using HtmlAgilityPack的回答。在
同时检查这个答案:RegEx match open tags except XHTML self-contained tags
您应该使用html解析器来完成您的任务
试试这个:
正则表达式
模式
只要html代码的结构不变,这就可以工作。在
相关问题 更多 >
编程相关推荐