【发布时间】:2017-01-03 12:54:04
【问题描述】:
在使用 html 解析器之前,我试图摆脱 HTML 代码的一些元素。我对正则表达式很陌生,这就是为什么我无法理解语法。
我的部分 html 代码如下所示:
<div class="footer" id="footer">
<other tags> ... bla ... </other tags>
</div>
但似乎页面的相同“部分”可以在某个子页面上以不同方式编写,如下所示:
<div id="footer" class="footer">
<other tags> ... bla ... </other tags>
</div>
我实现的事情是摆脱特定情况:
footer = re.sub('<div class="footer" id="footer">.*?</div>','',html)
但我想要的是一个更通用的正则表达式,所以如果他应该摆脱每个部分,例如"id="footer" 不管前面是什么
<div ... id="footer" ...>
<other tags> ... bla ... </other tags>
</div>
编辑:在被“讨厌”之前,我对 HTML 解析器也很陌生。
感谢您的帮助!
MG
【问题讨论】:
-
为什么不能同时使用 HTML 解析器来解决这个问题?
-
把不行的话,改用HTML解析器吧。
.*?改成[\s\S]*?或者使用flags=re.DOTALL,当然如果里面有
我刚刚意识到我可以用
soup.findAll('div',{'id':'footer'})找到相应的部分我也可以用HTML解析器摆脱这些部分吗?
为什么要摆脱它?用汤只选择你需要的 div。