写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有转移字符,这些字符我们需要把它转义成真正的字符。

什么是转义字符

在 HTML 中 <、>、& 等字符有特殊含义(<,> 用于标签中,& 用于转义),他们不能在 HTML 代码中直接使用,如果要在网页中显示这些符号,就需要使用 HTML 的转义字符串(Escape Sequence),例如 < 的转义字符是 &lt;,浏览器渲染 HTML 页面时,会自动把转移字符串换成真实字符。

转义字符(Escape Sequence)由三部分组成:第一部分是一个 & 符号,第二部分是实体(Entity)名字,第三部分是一个分号。 比如,要显示小于号(<),就可以写&lt; 。

Python 反转义字符串

用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义串的模块是 HTMLParser。

Python3 把 HTMLParser 模块迁移到 html.parser

到 python3.4 之后的版本,在 html 模块新增了 unescape 方法。

推荐最后一种写法,因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用,意味着之后的版本有可能会被彻底移除。

另外,sax 模块也有支持反转义的函数

当然,你完全可以实现自己的反转义功能,不复杂,当然,我们崇尚不重复造轮子。

转载于:https://blog.51cto.com/14246112/2374991

用 Python 处理 HTML 转义字符的5种方式相关推荐

  1. python使用什么作为转义字符-详解用Python处理HTML转义字符的5种方式

    写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程.在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有 ...

  2. Python调用API接口的几种方式

    本文主要介绍python中调用API的几种方式,下面是python中会用到的库. 1.urllib2 import urllib2, urllib github_url = 'https://api. ...

  3. 用Python读取CSV文件的5种方式

    典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 ...

  4. Python实现微信支付(三种方式)

    Python实现微信支付(三种方式) 微信.支付宝二维码聚合SDK下载 点我下载 关注公众号"轻松学编程"了解更多. 如果需要python SDk源码,可以加我微信[1257309 ...

  5. python中调用API的几种方式

    python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...

  6. 用python打开文件夹的三种方式

    用python打开文件夹的三种方式 一.利用explorer.exe import os# 利用explorer.exe执行 start_directory = r'C:\代码\软件包' os.sys ...

  7. python代码的注释只有一种方式、那就是使用_尔雅学习通APP2020年细胞的奥秘答案查题公众号...

    [填空题]饱和水蒸气通过间壁加热空气,间壁温度接近于 的温度. [判断题]Python代码的注释只有一种方式,那就是使用 # . A. 正确 B. 错误 [单选题]胚胎最易受病毒感染而造成胎儿发育畸形 ...

  8. Python识别网站验证码的几种方式

    Python识别网站验证码的几种方式 1.云打码平台(已完结) 优势:现成的平台,只需要调用即可,成功率较高. 劣势:需要一点软妹币. 这是最简单的运用,国内常用的打码平台有: 云打码(http:// ...

  9. python代码的注释只有一种方式、那就是使用_[多选] 《建立世贸组织协定》附件4包括的诸边贸易协议有()....

    Python代码的注释只有一种方式,那就是使用#符号 [填空题]Some young people like pop music, while still others like music. 以能源 ...

  10. django + python上传文件的两种方式

    突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...

最新文章

  1. matlab7 mat,matlab7.0里生成的mat文件为什么用matlab6.5打不开呢?
  2. hdu4807枚举费用流
  3. 高性能WEB开发(6) - web性能测试工具推荐
  4. Android事件处理--读书笔记
  5. 三星笔记本进入BIOS后找不到U盘启动项/快速启动键F12没有反应
  6. 大白技术控 | Windows10X 模拟器简单上手体验
  7. ArcGIS实验教程——实验三十一:ArcGIS构建泰森多边形(Thiessen Polygon)实例精解
  8. Ubuntu开发之旅一---安装初步
  9. 损失函数一直不变_MIT 18.03 微分方程笔记 3.4 狄拉克δ函数
  10. Django在settings.py设置安装软件路径,遇到 'Settings' object is not subscriptable报错
  11. 解决tshark报错:tshark: Some fields aren‘t valid
  12. 17.合并两个排序的链表
  13. 浅谈UWB室内定位(一)_vortex_新浪博客
  14. zabbix源码安装
  15. PowerPoint媒体更加适合这样的场合
  16. js课程 2-6 js如何进行类型转换及js运算符有哪些
  17. NYOJ题目37-回文字符串
  18. 人工智能中的深度结构学习 Learning deep architectures for AI - Yoshua Bengio
  19. 计算机启动应用程序的方法,应用程序无法正常启动,教您应用程序无法正常启动的解决方法...
  20. Virtual Reality 那些事

热门文章

  1. 图片版坦克大战其他相关的 类(三)
  2. ae制h5文字动画_利用AE表达式制作文字弹跳动画
  3. MVP项目框架搭建-高级设计
  4. python实现归并排序_排序算法学习(python版本)之归并排序(MergeSort)
  5. mfc 添加变量出现灾难性故障_实验室近期论文:储罐灾难性失效事故的漫堤预测模型...
  6. 算法知识点——(4)降维
  7. ie型lfsr_什么是PRBS
  8. 梯度下降算法动图_Deep Learning|神经网络原理学习笔记(5) :随机梯度下降算法SGD(附手绘图)、离线学习与在线学习...
  9. FR切换sheet时隐藏参数面板
  10. activity直接销毁_Android 关于Activity的销毁和重建