【发布时间】:2012-01-07 04:58:54
【问题描述】:
我想从 HTML 文档中删除所有 javascript 代码,并保留实际文本。是否有任何正则表达式或 python 脚本来执行此操作?谢谢。
【问题讨论】:
标签: javascript python html
我想从 HTML 文档中删除所有 javascript 代码,并保留实际文本。是否有任何正则表达式或 python 脚本来执行此操作?谢谢。
【问题讨论】:
标签: javascript python html
您可以编写一个正则表达式来查找'<script' 和'script>',并且做得很好。
编辑:正如@cHao 指出的那样——Regex's are bad for parsing HTML。
在您可以完全控制 HTML 的地方,正则表达式可能仍然有用。
【讨论】:
<script> document.write('</' + 'script>'); </script>
<script language=javascript>
你可以使用这个 jQuery 代码来移除:
$(javascript).html('')
和 Firebug 将您的 jQuery 代码注入网页:
>>> var x = window.open("");
Window opened
>>> x
Window about:blank
>>> x.document
Document about:blank
>>> x.document.write("$(javascript).html('')");
Alert popped up
【讨论】:
#!/usr/bin/env python
from BeautifulSoup import BeautifulSoup
with open("with-scripts.html", "r") as f:
soup = BeautifulSoup(f.read())
for script in soup("script"):
script.extract()
with open("without-scripts.html", "w") as f:
f.write(soup.prettify())
【讨论】: