Use lxml.html.clean! It's VERY easy!

from lxml.html.clean import clean_html
print clean_html(html)

Suppose the following html:

html = '''\
<html>
 <head>
   <script type="text/javascript" src="evil-site"></script>
   <link rel="alternate" type="text/rss" src="evil-rss">
   <style>
     body {background-image: url(javascript:do_evil)};
     div {color: expression(evil)};
   </style>
 </head>
 <body onload="evil_function()">
    <!-- I am interpreted for EVIL! -->
   <a href="javascript:evil_function()">a link</a>
   <a href="#" onclick="evil_function()">another link</a>
   <p onclick="evil_function()">a paragraph</p>
   <div style="display: none">secret EVIL!</div>
   <object> of EVIL! </object>
   <iframe src="evil-site"></iframe>
   <form action="evil-site">
     Password: <input type="password" name="password">
   </form>
   <blink>annoying EVIL!</blink>
   <a href="evil-site">spam spam SPAM!</a>
   <image src="evil!">
 </body>
</html>'''

The results...

<html>
  <body>
    <div>
      <style>/* deleted */</style>
      <a href="">a link</a>
      <a href="#">another link</a>
      <p>a paragraph</p>
      <div>secret EVIL!</div>
      of EVIL!
      Password:
      annoying EVIL!
      <a href="evil-site">spam spam SPAM!</a>
      <img src="evil!">
    </div>
  </body>
</html>

最新文章

  1. GNOME on Arch Linux
  2. iOS常用---NSString,NSMutabuleString
  3. Oracle中新增表代码
  4. C++学习笔记--Season 1
  5. 添加python第三方插件时出现的问题
  6. JAVA EE 项目经常使用知识 之AJAX技术实现select下拉列表联动的两种使用方法(让你真正理解ajax)
  7. OptionMenu选项菜单
  8. jdk各个版本的新特性(jdk1.7,1.8,1.9)
  9. 一款超级炫酷的编辑代码的插件 Power Mode
  10. BZOJ2141排队——树状数组套权值线段树(带修改的主席树)
  11. CH1602 The XOR Largest Pair【Trie树】
  12. Zabbix监控TCP status
  13. Xcode升级到9.3之后pod问题
  14. 从零开始的Python学习Episode 9——集合
  15. C# Dictionary 复制
  16. 修改testng源码,添加beforeMethod和afterMethod中的日志到test中(可以不改源码,废弃)
  17. 北京Uber优步司机奖励政策(12月22日)
  18. Instruments Tutorial for iOS: How To Debug Memory Leaks【转】
  19. 巨蟒django之权限8:排序&amp;&amp;菜单展开权限归属
  20. C语言数据结构-单链表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

热门文章

  1. 安装VirtualBox后 不能选择64bit的系统
  2. Nodejs经验谈
  3. Day9 基于TCP的套接字和基于UDP的套接字
  4. Ocelot中文文档-跟踪
  5. J2EE--常见面试题总结 -- (二)
  6. XAMPP重置MySQL密码
  7. Redis的安装及学习
  8. (二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用
  9. self,和类实例化加不加括号的理解
  10. 整理Cocos2d-x 面试题解