RedisCrawlSpider爬虫遇到 `明威把`不能转换为汉字的解决办法

xiaoxiao2022-05-13  51

问题阐述

爬取网页时,正常情况下python3中能直接转化为utf-8,即所谓的汉字能够正常显示。所以即使网页中显示的是这种escape sequence,获取到之后能够显示正常,但是偶尔也不好使,不好使的情况下就会出现以下的charref状态: 明威把

解决方法

In [1]: from html.parser import HTMLParser In [2]: HTMLParser().unescape("明威把") Out[2]: '明威把'

原因解释

HtmlParser,顾名思义,是解析Html的一个工具。python自带的。

一、常用属性和方法介绍

HtmlParser是一个类,在使用时一般继承它然后重载它的方法,来达到解析出需要的数据的目的。

1.常用属性:

lasttag,保存上一个解析的标签名,是字符串。

2.常用方法:

handle_starttag(tag, attrs) ,处理开始标签,比如<div>;这里的attrs获取到的是属性列表,属性以元组的方式展示     handle_endtag(tag) ,处理结束标签,比如</div>     handle_startendtag(tag, attrs) ,处理自己结束的标签,如<img />     handle_data(data) ,处理数据,标签之间的文本     handle_comment(data) ,处理注释,<!-- -->之间的文本

如果我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来,第二步就是解析该HTML页面,看看里面的内容到底是新闻、图片还是视频。

假设第一步已经完成了,第二步应该如何解析HTML呢?

HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。

好在Python提供了HTMLParser来非常方便地解析HTML

转载请注明原文地址: https://www.6miu.com/read-4884180.html

最新回复(0)