我正在考虑使用Beautiful Soup,一个用于HTML抓取的Python包.我应该看看还有其他HTML抓包吗?Python不是必需的,我实际上也有兴趣了解其他语言.
到目前为止的故事:
可能重复:
在C#中解析html的最佳方法是什么?
我想提取HTML文档的结构 - 所以标签比内容更重要.理想情况下,它也能够在一定程度上合理地处理格式错误的HTML.
有人知道一个可靠而有效的解析器吗?
使用以下文本作为示例,我需要能够在LI标记之间提取文本.请注意,第一个LI是故意错误形成的,因为可能是这种情况.换句话说,我想要从LI标签到关闭LI标签或下一个LI开口标签的所有内容.
<UL>
<LI class="test">This is the first ListItem Text.
<LI>This is the second ListItem Test. </LI></UL>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我想出了:
<[Ll][Ii].*>(.*?)((?:<[Ll][Ii]>)|(?:</[Ll][Ii]>))
Run Code Online (Sandbox Code Playgroud)
但是这似乎与第一个LI标记匹配,直到结束标记与作为第二个LI标记的文本的组匹配.我设法让它返回第一组,但从来没有.我正在使用"Dot matches newline"选项,这是.NET,我需要它才能工作.谢谢!
UPDATE
我在发布这个问题之前做了一些研究,事实上看到并理解使用正则表达式来解析HTML是一个坏主意.话虽这么说,我只需要能够从这里和那里的几个LI标签中获取文本,以确定在powerpoint幻灯片上播放哪些文本.我认为可能有一种更简单的方法来做,而不是处理一个单独的库,特别是当使用第三方库很难处理我的工作.不幸的是,当在页面上使用html富文本输入框时,HTML可能会在某些情况下导致格式不正确,从而允许您对文本进行细化.感谢所有针对REGEX用于解析HTML的建议.我应该预先指出我已经阅读了很多类似的建议但是正在寻找一个简单的环境快速解决方案.