从html中提取有效的文本,经常碰到2种类型:
1、针对特定网页特征提取结构化信息
a、查看网站的DOM结构:减少代码的冗余,优化好前段页面。
b、结构化信息提取
2、通过网页去噪。
a、利用多个网页的正文信息对比的方法,把公共的字符检测出来,较长的公共字符可以看出噪音信息。
b、为了提取网页模板的相似度,需要计算两个网页的结构相似度,提取相同的模板去噪音,比如网站底部的footer部分。
c、详细页面的特征:
(1)非锚文本文字较多
(2)有非常明显的文本段落,标点符号也较多
(3)url结构较长,通过分析网站,此类URL非常有规律的,基本处于链接结构的最底层
d 、详细页面的去噪 特征:
(1)多以链接的形式出现,链接到别的相关页面。
(2)有很多锚文本,但是标点符号较少,锚文本往往是对其他链接页面的说明。
(3)一些底部模板等噪音文本。
那么在实现网页中提取文本之前,爬虫会先识别网页的编码,如果有必要的话,也要识别一下网页的语言。
如何去识别网页的编码:
1、从WEB服务器返回的content type中提取编码。
2、在网页的meta信息中识别字符编码,如果和content type中的编码不一致,以Meta中声明的编码为准。
3、如果实在无法判断网页的字符集,那么需要从返回流中去判断,同时也要确定网页所使用的语言。
这就是为什么我们要明确网页的编码集了,减少爬虫的判断,提高效率。
<html
xmlns
="http://www.w3.org/1999/xhtml"
xml:lang
="zh-CN"
lang
="zh-CN"
>
<head
>
<meta
http-equiv
="Content-Type"
content
="text/html; charset=utf-8"
/
>
如何是中文站,utf-8的编码集,最好定义一下lang="zh-CN"。