从网页中提取图片的方法、装置及客户端设备
技术领域
本发明涉及互联网应用技术领域,特别是指一种从网页中提取图片的方法、装置及客户端设备。
背景技术
一般情况下,网页页面中除了有文字信息之外,还放置有一些图片,以更加形象直观地体现网页内容。在很多情况下,用户浏览网页时并不会浏览网页页面的全部内容,而只关注网页页面中的图片信息,从图片信息中大致了解网页的内容。这样为了方便用户,可以在用户没有打开网页时,从用户将要打开的网页中提取代表网页内容的某张图片展示给用户,以提供预览栏、在预览栏中展示图片的形式,使用户通过提取的图片提前了解网页的内容。
但是,如果只是简单地从一个网页中随机提取一张图片展示给用户,并不能保证提取的图片与网页内容具有很高的相关度,也就不能保证用户从提取的图片中较为准确的了解网页的大致内容。
发明内容
本发明要解决的技术问题是提供一种从网页中提取图片的方法、装置及客户端设备,可以从网页中提取与网页内容具有较高相关度的图片。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种从网页中提取图片的方法,包括:
步骤a:获取所述网页的源代码,根据所述源代码获取所述网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待提取的目标图片;
步骤d:获取所述目标图片,以将所述目标图片展示给用户,使得所述用户能够在未打开所述网页时通过查看所述目标图片了解所述网页的内容。
进一步地,上述方案中,所述步骤a之后,所述步骤c之前,所述方法还包括:
步骤b:根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度,根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理,所述合并处理后,所述网页的实质内容中的段落包括合并段落和未合并段落;
所述步骤c中确定所述实质内容中的段落的重要程度包括:
确定所述合并段落和未合并段落的重要程度;或者
确定所述合并段落和未合并段落中包含有图片的段落的重要程度。
进一步地,上述方案中,所述步骤b中根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度包括:
根据所述获取的所述网页的实质内容,将所述网页的实质内容中每个段落的文字拆分为多个词语,并对拆分后的词语进行过滤,去除其中的干扰词,并统计剩余的非干扰词的词频,所述词频为所述非干扰词在所述段落中出现的次数;
根据每个所述段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度。
进一步地,上述方案中,所述根据每个段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度包括:
按照相邻段落中第一个段落的非干扰词的词频建立第一向量,按照相邻段落中第二个段落的非干扰词的词频建立第二向量,所述第一个段落和第二个段落相同的非干扰词分别位于所述第一向量和第二向量的相同位置;
计算所述第一向量和第二向量的夹角的余弦值,并将该余弦值作为所述相邻段落的相关度;
所述步骤b中根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理包括:
当所述相邻段落的相关度大于设定的第二阈值时,将所述第一个段落和所述第二个段落合并,得到一个合并段落。
进一步地,上述方案中,所述步骤a包括:
获取网页的源代码,根据源代码获取所述网页的整个内容,所述整个内容包括html标签、属性、注释、脚本、级联样式表样式、文字和图片中的至少一种;
对整个所述网页内容进行分析,删除不相干的内容,得到网页的实质内容,所述不相干的内容包括html标签、属性、注释、脚本和级联样式表样式。
进一步地,上述方案中,所述步骤c中确定所述实质内容中的段落的重要程度包括:
获取每个所述段落的重要程度计算参数,所述重要程度计算参数包括以下参数的至少一种:
所述段落与网页的吻合度、所述段落的关键词密度、所述段落的字数、所述段落的字数与所述网页的实质内容的字数的比率;
根据每个所述段落的重要程度计算参数和所述重要程度计算参数对应的权重,将每个重要程度计算参数与其相应的权重相乘后再求和,得到每个所述段落的重要程度。
进一步地,上述方案中,所述重要程度计算参数包括所述段落与网页的吻合度、所述段落的关键词密度和所述段落的字数;
所述段落与网页的吻合度的权重、所述段落的关键词密度的权重和所述段落的字数的权重的比值为3:1:0.2至5:2:0.5。
进一步地,上述方案中,所述重要程度计算参数包括所述段落的关键词密度;
所述获取每个所述段落的重要程度计算参数包括:
获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
统计所述段落的段落关键词与全文关键词中重合的词在所述段落中出现的次数,将所述重合的词在所述段落中出现的次数求和得到所述段落的关键词密度。
进一步地,上述方案中,所述重要程度计算参数包括所述段落与网页的吻合度;
所述获取每个所述段落的重要程度计算参数包括:
获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
确定每个所述段落的段落关键词与所述全文关键词中重合的词的个数、或所述重合的词的个数与所述全文关键词的个数的比率,以将所述重合的词的个数或所述重合的词的个数与所述全文关键词的个数的比率作为每个所述段落与网页的吻合度。
进一步地,上述方案中,所述获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词包括:
对所述网页的实质内容中的非干扰词按照在所述网页的实质内容中出现的次数从高到低的顺序进行排序,并提取前M个非干扰词作为所述网页的实质内容的全文关键词,其中M为不小于1的整数,;
对于每个所述段落中的非干扰词按照在所述段落中出现的次数从高到低的顺序进行排序,并提取前N个非干扰词作为所述段落的段落关键词,其中N为不小于1的整数。
进一步地,上述方案中,所述步骤d之前,所述方法还包括:
判断所述目标图片的长度和宽度是否均小于预设的第三阈值;
在所述目标图片的长度和宽度均小于预设的第三阈值时,放弃获取所述目标图片。
进一步地,上述方案中,所述步骤d包括:
通过超文本预处理语言PHP的curl库向服务器发送http请求,所述http请求中,referer字段中包含的链接地址为所述目标图片所在的原始页面的链接地址。
进一步地,上述方案中,所述根据所述源代码获取网页的实质内容之前还包括:
根据所述源代码,确定所述网页是否为站点主页;
如果确定所述网页为站点主页,从所述源代码中查找所述网页的主标题,并将所述查找到的主标题后的图片确定为待抓取的目标图片;
如果没有查找到主标题或者所述查找到的主标题后没有图片,从所述源代码中查找第一张图片,将所述第一张图片确定为待抓取的目标图片。
本发明实施例还提供了一种网页展示方法,包括:
提供第一界面,所述第一界面中包括页面地址栏以及预览栏,所述页面地址栏中显示有用户预先存储的网页列表,所述列表中包括所述网页的标识信息,所述标识信息包括所述网页的标题和/或所述下载页面的地址;
接收用户对显示在所述页面地址栏的第一网页的标识信息的第一操作指令;
根据所述第一操作指令,获取所述第一网页的图片;
在所述预览栏中向用户展示所述获取的图片,以使所述用户能够在未打开所述第一网页时通过查看所述图片了解所述第一网页的内容。
进一步地,上述方案中,所述根据所述第一操作指令,获取所述第一网页的图片包括:
步骤a:获取所述第一网页的源代码,根据所述源代码获取所述第一网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待获取的目标图片;
步骤d:获取所述目标图片;
或者,
从服务器接收所述第一网页的图片,所述服务器通过所述步骤a、c、d获取所述第一网页的图片。
本发明实施例还提供了一种从网页中提取图片的装置,包括:
获取模块,用于获取所述网页的源代码,根据所述源代码获取所述网页的实质内容;
计算模块,用于确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待提取的目标图片;
下载模块,用于获取所述目标图片,以将所述目标图片展示给用户,使得所述用户能够在未打开所述网页时通过查看所述目标图片了解所述网页的内容。
进一步地,上述方案中,所述装置还包括:
合并模块,用于根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度,根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理,所述合并处理后,所述网页的实质内容中的段落包括合并段落和未合并段落;
所述计算模块用于确定所述合并段落和未合并段落的重要程度;或者
确定所述合并段落和未合并段落中包含有图片的段落的重要程度。
进一步地,上述方案中,所述合并模块包括:
拆分子模块,用于根据所述获取的所述网页的实质内容,将所述网页的实质内容中每个段落的文字拆分为多个词语,并对拆分后的词语进行过滤,去除其中的干扰词,并统计剩余的非干扰词的词频,所述词频为所述非干扰词在所述段落中出现的次数;
合并子模块,用于根据每个所述段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度。
进一步地,上述方案中,所述根据每个段落中的非干扰词及非干扰词的词频,
所述合并子模块具体用于按照相邻段落中第一个段落的非干扰词的词频建立第一向量,按照相邻段落中第二个段落的非干扰词的词频建立第二向量,所述第一个段落和第二个段落相同的非干扰词分别位于所述第一向量和第二向量的相同位置,计算所述第一向量和第二向量的夹角的余弦值,并将该余弦值作为所述相邻段落的相关度;
所述合并模块具体用于当所述相邻段落的相关度大于设定的第二阈值时,将所述第一个段落和所述第二个段落合并,得到一个合并段落。
进一步地,上述方案中,所述获取模块包括:
抓取子模块,用于获取网页的源代码,根据源代码获取所述网页的整个内容,所述整个内容包括html标签、属性、注释、脚本、级联样式表样式、文字和图片中的至少一种;
筛选子模块,用于对整个所述网页内容进行分析,删除不相干的内容,得到网页的实质内容,所述不相干的内容包括html标签、属性、注释、脚本和级联样式表样式。
进一步地,上述方案中,所述计算模块包括:
计算子模块,用于获取每个所述段落的重要程度计算参数,所述重要程度计算参数包括以下参数的至少一种:
所述段落与网页的吻合度、所述段落的关键词密度、所述段落的字数、所述段落的字数与所述网页的实质内容的字数的比率;
求权子模块,用于根据每个所述段落的重要程度计算参数和所述重要程度计算参数对应的权重,将每个重要程度计算参数与其相应的权重相乘后再求和,得到每个所述段落的重要程度。
进一步地,上述方案中,所述重要程度计算参数包括所述段落与网页的吻合度、所述段落的关键词密度和所述段落的字数;
所述段落与网页的吻合度的权重、所述段落的关键词密度的权重和所述段落的字数的权重的比值为3:1:0.2至5:2:0.5。
进一步地,上述方案中,所述重要程度计算参数包括所述段落的关键词密度;
所述计算子模块具体用于获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;统计所述段落的段落关键词与全文关键词中重合的词在所述段落中出现的次数,将所述重合的词在所述段落中出现的次数求和得到所述段落的关键词密度。
进一步地,上述方案中,所述重要程度计算参数包括所述段落与网页的吻合度;
所述计算子模块具体用于获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
确定每个所述段落的段落关键词与所述全文关键词中重合的词的个数、或所述重合的词的个数与所述全文关键词的个数的比率,以将所述重合的词的个数或所述重合的词的个数与所述全文关键词的个数的比率作为每个所述段落与网页的吻合度。
进一步地,上述方案中,所述计算子模块包括:
关键词获取单元,用于对所述网页的实质内容中的非干扰词按照在所述网页的实质内容中出现的次数从高到低的顺序进行排序,并提取前M个非干扰词作为所述网页的实质内容的全文关键词,其中M为不小于1的整数,;
对于每个所述段落中的非干扰词按照在所述段落中出现的次数从高到低的顺序进行排序,并提取前N个非干扰词作为所述段落的段落关键词,其中N为不小于1的整数。
进一步地,上述方案中,所述装置还包括:
判断模块,用于判断所述目标图片的长度和宽度是否均小于预设的第三阈值,并在所述目标图片的长度和宽度均小于预设的第三阈值时,放弃获取所述目标图片。
进一步地,上述方案中,所述下载模块具体用于通过超文本预处理语言PHP的curl库向服务器发送http请求,所述http请求中,referer字段中包含的链接地址为所述目标图片所在的原始页面的链接地址。
进一步地,上述方案中,所述装置还包括:
确定模块,用于根据所述源代码,确定所述网页是否为站点主页;如果确定所述网页为站点主页,从所述源代码中查找所述网页的主标题,并将所述查找到的主标题后的图片确定为待抓取的目标图片;如果没有查找到主标题或者所述查找到的主标题后没有图片,从所述源代码中查找第一张图片,将所述第一张图片确定为待抓取的目标图片。
本发明实施例还提供了一种客户端设备,包括如上所述的从网页中提取图片的装置。
本发明实施例还提供了一种网页展示装置,包括:
显示模块,用于提供第一界面,所述第一界面中包括页面地址栏以及预览栏,所述页面地址栏中显示有用户预先存储的网页列表,所述列表中包括所述网页的标识信息,所述标识信息包括所述网页的标题和/或所述下载页面的地址;
接收模块,用于接收用户对显示在所述页面地址栏的第一网页的标识信息的第一操作指令;
获取模块,用于根据所述第一操作指令,获取所述第一网页的图片;
展示模块,用于在所述预览栏中向用户展示所述获取的图片,以使所述用户能够在未打开所述第一网页时通过查看所述图片了解所述第一网页的内容。
进一步地,上述方案中,所述获取模块具体用于通过以下步骤获取所述第一网页的图片:
步骤a:获取所述第一网页的源代码,根据所述源代码获取所述第一网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待获取的目标图片;
步骤d:获取所述目标图片;
或者,
从服务器接收所述第一网页的图片,所述服务器通过所述步骤a、c、d获取所述第一网页的图片。
本发明的实施例具有以下有益效果:
上述方案中,通过获取网页的实质内容,并对网页的实质内容进行分析处理,能够提取出一张与网页内容最相关的图片来展示网页的内容,用户只需要预览提取出的图片,即可大致了解网页的主要内容。
附图说明
图1为本发明实施例的从网页中提取图片的方法的流程示意图;
图2为本发明实施例的从网页中提取图片的装置的结构框图;
图3为本发明实施例求取相邻两个段落的相关度的示意图;
图4为本发明具体实施例中新闻页面的示意图;
图5为本发明实施例应用于收藏夹时的示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例提供一种从网页中提取图片的方法、装置及客户端设备,可以从网页中提取与网页内容具有较高相关度的图片。
图1为本发明实施例的从网页中提取图片的方法的流程示意图,如图1所示,本实施例包括:
步骤a:获取所述网页的源代码,根据所述源代码获取所述网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待提取的目标图片;
步骤d:获取所述目标图片,以将所述目标图片展示给用户,使得所述用户能够在未打开所述网页时通过查看所述目标图片了解所述网页的内容。
本发明的从网页中提取图片的方法,通过获取网页的实质内容,并对网页的实质内容进行分析处理,能够提取出一张与网页内容最相关的图片来展示网页的内容,用户不需要打开网页,只需要预览提取出的图片,即可大致了解网页的主要内容。
进一步地,本发明的另一实施例中,所述步骤a之后,所述步骤c之前,所述方法还包括:
步骤b:根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度,根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理,所述合并处理后,所述网页的实质内容中的段落包括合并段落和未合并段落;
所述步骤c中确定所述实质内容中的段落的重要程度包括:
确定所述合并段落和未合并段落的重要程度;或者
确定所述合并段落和未合并段落中包含有图片的段落的重要程度。
进一步地,本发明的另一实施例中,所述步骤b中根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度包括:
根据所述获取的所述网页的实质内容,将所述网页的实质内容中每个段落的文字拆分为多个词语,并对拆分后的词语进行过滤,去除其中的干扰词,并统计剩余的非干扰词的词频,所述词频为所述非干扰词在所述段落中出现的次数;
根据每个所述段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度。
进一步地,本发明的另一实施例中,所述根据每个段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度包括:
按照相邻段落中第一个段落的非干扰词的词频建立第一向量,按照相邻段落中第二个段落的非干扰词的词频建立第二向量,所述第一个段落和第二个段落相同的非干扰词分别位于所述第一向量和第二向量的相同位置;
计算所述第一向量和第二向量的夹角的余弦值,并将该余弦值作为所述相邻段落的相关度;
所述步骤b中根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理包括:
当所述相邻段落的相关度大于设定的第二阈值时,将所述第一个段落和所述第二个段落合并,得到一个合并段落。
进一步地,本发明的另一实施例中,所述步骤a包括:
获取网页的源代码,根据源代码获取所述网页的整个内容,所述整个内容包括html标签、属性、注释、脚本、级联样式表样式、文字和图片中的至少一种;
对整个所述网页内容进行分析,删除不相干的内容,得到网页的实质内容,所述不相干的内容包括html标签、属性、注释、脚本和级联样式表样式。
进一步地,本发明的另一实施例中,所述步骤c中确定所述实质内容中的段落的重要程度包括:
获取每个所述段落的重要程度计算参数,所述重要程度计算参数包括以下参数的至少一种:
所述段落与网页的吻合度、所述段落的关键词密度、所述段落的字数、所述段落的字数与所述网页的实质内容的字数的比率;
根据每个所述段落的重要程度计算参数和所述重要程度计算参数对应的权重,将每个重要程度计算参数与其相应的权重相乘后再求和,得到每个所述段落的重要程度。
一般情况下,使用合并段落与网页全文的吻合度、关键词密度、及合并段落字数这三个因素计算合并段落的重要程度的准确率较高,但不限于此,也可以仅使用这三个因素中的一种或两种计算。
进一步地,本发明的另一实施例中,所述重要程度计算参数包括所述段落与网页的吻合度、所述段落的关键词密度和所述段落的字数;
所述段落与网页的吻合度的权重、所述段落的关键词密度的权重和所述段落的字数的权重的比值为3:1:0.2至5:2:0.5。
进一步地,本发明的另一实施例中,所述重要程度计算参数包括所述段落的关键词密度;
所述获取每个所述段落的重要程度计算参数包括:
获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
统计所述段落的段落关键词与全文关键词中重合的词在所述段落中出现的次数,将所述重合的词在所述段落中出现的次数求和得到所述段落的关键词密度。
进一步地,本发明的另一实施例中,所述重要程度计算参数包括所述段落与网页的吻合度;
所述获取每个所述段落的重要程度计算参数包括:
获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
确定每个所述段落的段落关键词与所述全文关键词中重合的词的个数、或所述重合的词的个数与所述全文关键词的个数的比率,以将所述重合的词的个数或所述重合的词的个数与所述全文关键词的个数的比率作为每个所述段落与网页的吻合度。
具体地,所述获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词包括:
对所述网页的实质内容中的非干扰词按照在所述网页的实质内容中出现的次数从高到低的顺序进行排序,并提取前M个非干扰词作为所述网页的实质内容的全文关键词,其中M为不小于1的整数,;
对于每个所述段落中的非干扰词按照在所述段落中出现的次数从高到低的顺序进行排序,并提取前N个非干扰词作为所述段落的段落关键词,其中N为不小于1的整数。
进一步地,本发明的另一实施例中,包括上述步骤a-b的基础上,所述步骤d之前,所述方法还包括:
判断所述目标图片的长度和宽度是否均小于预设的第三阈值;
在所述目标图片的长度和宽度均小于预设的第三阈值时,放弃获取所述目标图片。
进一步地,本发明的另一实施例中,包括上述步骤a-b的基础上,所述步骤d包括:
通过超文本预处理语言PHP的curl库向服务器发送http请求,所述http请求中,referer字段中包含的链接地址为所述目标图片所在的原始页面的链接地址。
进一步地,本发明的另一实施例中,包括上述步骤a-b的基础上,所述根据所述源代码获取网页的实质内容之前还包括:
根据所述源代码,确定所述网页是否为站点主页;
如果确定所述网页为站点主页,从所述源代码中查找所述网页的主标题,并将所述查找到的主标题后的图片确定为待抓取的目标图片;
如果没有查找到主标题或者所述查找到的主标题后没有图片,从所述源代码中查找第一张图片,将所述第一张图片确定为待抓取的目标图片。
图2为本发明实施例的从网页中提取图片的装置的结构框图,如图2所示,本实施例包括:
获取模块20,用于获取所述网页的源代码,根据所述源代码获取所述网页的实质内容;
计算模块22,用于确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待提取的目标图片;
下载模块23,用于获取所述目标图片,以将所述目标图片展示给用户,使得所述用户能够在未打开所述网页时通过查看所述目标图片了解所述网页的内容。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述装置还包括:
合并模块21,用于根据所述获取的所述网页的实质内容,确定所述实质内容中的段落中相邻段落的相关度,根据所述确定的相邻段落的相关度对所述网页的实质内容中的段落进行合并处理,所述合并处理后,所述网页的实质内容中的段落包括合并段落和未合并段落;
所述计算模块22用于确定所述合并段落和未合并段落的重要程度;或者
确定所述合并段落和未合并段落中包含有图片的段落的重要程度。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述合并模块包括:
拆分子模块,用于根据所述获取的所述网页的实质内容,将所述网页的实质内容中每个段落的文字拆分为多个词语,并对拆分后的词语进行过滤,去除其中的干扰词,并统计剩余的非干扰词的词频,所述词频为所述非干扰词在所述段落中出现的次数;
合并子模块,用于根据每个所述段落中的非干扰词及非干扰词的词频,确定所述实质内容中的段落中相邻段落的相关度。
进一步地,所述根据每个段落中的非干扰词及非干扰词的词频,
所述合并子模块具体用于按照相邻段落中第一个段落的非干扰词的词频建立第一向量,按照相邻段落中第二个段落的非干扰词的词频建立第二向量,所述第一个段落和第二个段落相同的非干扰词分别位于所述第一向量和第二向量的相同位置,计算所述第一向量和第二向量的夹角的余弦值,并将该余弦值作为所述相邻段落的相关度;
所述合并模块具体用于当所述相邻段落的相关度大于设定的第二阈值时,将所述第一个段落和所述第二个段落合并,得到一个合并段落。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述获取模块包括:
抓取子模块,用于获取网页的源代码,根据源代码获取所述网页的整个内容,所述整个内容包括html标签、属性、注释、脚本、级联样式表样式、文字和图片中的至少一种;
筛选子模块,用于对整个所述网页内容进行分析,删除不相干的内容,得到网页的实质内容,所述不相干的内容包括html标签、属性、注释、脚本和级联样式表样式。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述计算模块包括:
计算子模块,用于获取每个所述段落的重要程度计算参数,所述重要程度计算参数包括以下参数的至少一种:
所述段落与网页的吻合度、所述段落的关键词密度、所述段落的字数、所述段落的字数与所述网页的实质内容的字数的比率;
求权子模块,用于根据每个所述段落的重要程度计算参数和所述重要程度计算参数对应的权重,将每个重要程度计算参数与其相应的权重相乘后再求和,得到每个所述段落的重要程度。
一般情况下,使用合并段落与网页全文的吻合度、关键词密度、及合并段落字数这三个因素计算合并段落的重要程度的准确率较高,但不限于此,也可以仅使用这三个因素中的一种或两种计算。
优选地,所述重要程度计算参数包括所述段落与网页的吻合度、所述段落的关键词密度和所述段落的字数;
所述段落与网页的吻合度的权重、所述段落的关键词密度的权重和所述段落的字数的权重的比值为3:1:0.2至5:2:0.5。
进一步地,所述重要程度计算参数包括所述段落的关键词密度;
所述计算子模块具体用于获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;统计所述段落的段落关键词与全文关键词中重合的词在所述段落中出现的次数,将所述重合的词在所述段落中出现的次数求和得到所述段落的关键词密度。
进一步地,所述重要程度计算参数包括所述段落与网页的吻合度;
所述计算子模块具体用于获取所述网页的实质内容的全文关键词及每个所述段落的段落关键词;
确定每个所述段落的段落关键词与所述全文关键词中重合的词的个数、或所述重合的词的个数与所述全文关键词的个数的比率,以将所述重合的词的个数或所述重合的词的个数与所述全文关键词的个数的比率作为每个所述段落与网页的吻合度。
进一步地,所述计算子模块包括:
关键词获取单元,用于对所述网页的实质内容中的非干扰词按照在所述网页的实质内容中出现的次数从高到低的顺序进行排序,并提取前M个非干扰词作为所述网页的实质内容的全文关键词,其中M为不小于1的整数,;
对于每个所述段落中的非干扰词按照在所述段落中出现的次数从高到低的顺序进行排序,并提取前N个非干扰词作为所述段落的段落关键词,其中N为不小于1的整数。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述装置还包括:
判断模块,用于判断所述目标图片的长度和宽度是否均小于预设的第三阈值,并在所述目标图片的长度和宽度均小于预设的第三阈值时,放弃获取所述目标图片。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述下载模块具体用于通过超文本预处理语言PHP的curl库向服务器发送http请求,所述http请求中,referer字段中包含的链接地址为所述目标图片所在的原始页面的链接地址。
进一步地,本发明的另一实施例中,包括上述结构的基础上,所述装置还包括:
确定模块,用于根据所述源代码,确定所述网页是否为站点主页;如果确定所述网页为站点主页,从所述源代码中查找所述网页的主标题,并将所述查找到的主标题后的图片确定为待抓取的目标图片;如果没有查找到主标题或者所述查找到的主标题后没有图片,从所述源代码中查找第一张图片,将所述第一张图片确定为待抓取的目标图片。
本发明的从网页中提取图片的装置,通过获取网页的实质内容,并对网页的实质内容进行分析处理,能够提取出一张与网页内容最相关的图片来展示网页的内容,用户只需要预览提取出的图片,即可大致了解网页的主要内容。
本发明实施例还提供了一种客户端设备,包括如上所述的从网页中提取图片的装置。该客户端设备可以设置在浏览器中,还可以设置在移动终端或PC(个人电脑)上。
本发明实施例还提供了一种网页展示方法,包括:
提供第一界面,所述第一界面中包括页面地址栏以及预览栏,所述页面地址栏中显示有用户预先存储的网页列表,所述列表中包括所述网页的标识信息,所述标识信息包括所述网页的标题和/或所述下载页面的地址;
接收用户对显示在所述页面地址栏的第一网页的标识信息的第一操作指令;
根据所述第一操作指令,获取所述第一网页的图片;
在所述预览栏中向用户展示所述获取的图片,以使所述用户能够在未打开所述第一网页时通过查看所述图片了解所述第一网页的内容。
进一步地,所述根据所述第一操作指令,获取所述第一网页的图片包括:
步骤a:获取所述第一网页的源代码,根据所述源代码获取所述第一网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待获取的目标图片;
步骤d:获取所述目标图片;
或者,
从服务器接收所述第一网页的图片,所述服务器通过所述步骤a、c、d获取所述第一网页的图片。
对应地,本发明实施例还提供了一种网页展示装置,包括:
显示模块,用于提供第一界面,所述第一界面中包括页面地址栏以及预览栏,所述页面地址栏中显示有用户预先存储的网页列表,所述列表中包括所述网页的标识信息,所述标识信息包括所述网页的标题和/或所述下载页面的地址;
接收模块,用于接收用户对显示在所述页面地址栏的第一网页的标识信息的第一操作指令;
获取模块,用于根据所述第一操作指令,获取所述第一网页的图片;
展示模块,用于在所述预览栏中向用户展示所述获取的图片,以使所述用户能够在未打开所述第一网页时通过查看所述图片了解所述第一网页的内容。
进一步地,上述方案中,所述获取模块具体用于通过以下步骤获取所述第一网页的图片:
步骤a:获取所述第一网页的源代码,根据所述源代码获取所述第一网页的实质内容;
步骤c:确定所述实质内容中的段落的重要程度,确定包含有图片的所述段落中重要程度最高的段落,并将所述重要程度最高的段落中的图片确定为待获取的目标图片;
步骤d:获取所述目标图片;
或者,
从服务器接收所述第一网页的图片,所述服务器通过所述步骤a、c、d获取所述第一网页的图片。
下面结合具体的实施例对本发明的从网页中提取图片的方法进行详细介绍,本实施例的从网页中提取图片的方法具体包括以下步骤:
步骤1)抓取待提取图片的网页的源代码,根据该源代码获取整个网页内容,其中整个网页内容包括html(Hypertext Markup Language,超文本标记语言)标签、属性、注释、脚本、css(级联样式表)样式、文字、图片等信息;
步骤2)对整个网页内容进行分析,删除不相干的内容,如html标签、属性、注释、脚本、css样式等,得到网页的实质内容;
具体地,可以根据正则表达式查找网页对应的源代码中不相干的内容。为了方便,本发明中将删除不相干的内容后的剩余的网页内容称为网页的实质内容。
步骤3)针对网页的实质内容中的每个段落,这里的段落指的是网页的实质内容中的初始段落。将初始段落中的文字拆分成多个词语,根据拆分结果对拆分的词语进行过滤,去除干扰词(比如“我的”、“这个”等),将去除干扰词后剩余的词称为非干扰词,统计每个非干扰词的词频,即每个非干扰词在当前初始段落中出现的次数;
具体实现上,可以预先在后台维护一个词库,词库中搜集大量干扰词,将拆分后的词语与词库中的干扰词进行对比,如果拆分后的词语中存在与词库中相同的词,则将其作为干扰词去除。
步骤4)根据每个段落中的非干扰词及非干扰词的词频,获取相邻两个段落的相关度,根据相关度对段落进行文本聚类,即进行段落的合并,本发明将合并后的段落称为合并段落,合并段落中包括进行合并后形成的段落和合并处理后未被合并的段落;
下面以两个相邻的段落为例详细说明计算两个段落相关度的方法:
在相邻段落中的第一个段落如果有5个非干扰词(实际上可能不止5个):网页、人物、技术、理解、评论,这些非干扰词的词频分别为3、5、6、9、4,相邻段落中的第二个段落中如果有4个非干扰词(实际上可能不止4个):网页、人物、政治、贪污,这些非干扰词的词频分别为2、6、5、4,其中第一个段落和第二个段落中有2个非干扰词是重复的,按照词频的值分别针对第一个段落和第二个段落建立向量模型:
X=[3,5,6,9,4,0,0]
Y=[2,6,0,0,0,5,4]
其中,X为第一个段落的向量模型,Y为第二个段落的向量模型,如图3所示,两个段落的相关度可以通过以上两个向量的夹角的余弦值来表示,余弦值越大,相关度越大,当相关度大于设定的第二阈值时,将相邻两个段落合并。
按照上述方法,针对每两个相邻的段落都采用同样的方法计算相关度,根据相关度判断是否对两个相邻段落进行合并。
步骤5)针对经过上述合并处理后的合并段落,获取每个合并段落的重要程度计算参数,重要程度计算参数包括以下几种参数的至少一种:合并段落与网页全文的吻合度、合并段落的关键词密度、合并段落的字数、合并段落的字数与网页的实质内容的字数的比率;
其中,获取合并段落的字数以及合并段落的字数与网页的实质内容的字数的比率的技术方案在此不再赘述,下面介绍如果获取合并段落与网页全文的吻合度以及合并段落的关键词密度:首先获取合并段落的段落关键词及网页的实质内容的全文关键词,之后根据段落关键词及全文关键词获取每个合并段落与网页全文的吻合度、根据合并段落的段落关键词获取合并段落的关键词密度;
其中,合并段落的段落关键词的获取方法为:对于每个合并段落中的非干扰词,按照词频的从高到低进行排序,提取前N个非干扰词(N为不小于1的整数),作为该合并段落的段落关键词。
全文关键词的获取方法为:将网页的实质内容中的非干扰词按照词频的从高到低进行排序,提取前M个非干扰词(M为不小于1的整数,其中M与N可以相同,也可以不相同),作为全文关键词。即将全文作为一个段落,按照前面针对段落的分析方法获取全文中每个非干扰词的词频,将全文的非干扰词按照词频的从高到低排序,提取前M个非干扰词,作为全文关键词。
合并段落与网页全文的吻合度的获取方法为:可以通过每个合并段落的段落关键词与全文关键词重合的词的个数或比率来体现。若使用个数体现,假设合并段落的段落关键词中有3个与全文关键词重合,则该合并段落与网页全文的吻合度为3。若使用比率体现,假设合并段落的段落关键词中有3个与全文关键词重合,因为总共具有5个全文关键词,则该合并段落与网页全文的吻合度为3/5。
合并段落的关键词密度的获取方法为:分别统计段落关键词与全文关键词重合的词在当前合并段落中出现的次数,将重合的词在当前合并段落中出现的次数求和即为当前合并段落的关键词密度。如合并段落的段落关键词中有3个与全文关键词重合,在当前合并段落中分别出现5、4、3次,则当前合并段落的关键词密度为12。
步骤6)根据预先为每个重要程度计算参数分配的相应的权重,将每个重要程度计算参数与相应的权重相乘再求和,得到每个合并段落的重要程度;
本步骤中,使用合并段落与网页全文的吻合度、合并段落的关键词密度、及合并段落的字数这三个因素进行计算的准确率较高,但不限于此,也可以仅使用这三个因素中的一种或两种计算。
其中,在使用合并段落与网页全文的吻合度、合并段落的关键词密度、及合并段落的字数这三个因素进行计算时,分别为上述三个因素分配相应的权重,具体权重值可以根据经验获得,一般情况下,合并段落与网页全文的吻合度的权重最高、合并段落的关键词密度的权重次之、合并段落的字数的权重最小,一具体实例中,合并段落与网页全文的吻合度的权重可以为3-5,合并段落的关键词密度的权重可以为1-2,合并段落的字数权重可以为0.2-0.5。可以理解的,上述权重值可以成比例改变。分别将上述三个因素值与相应的权重相乘,再求和,通过计算结果获得每个合并段落的重要程度。
进一步地,本步骤的方法中,也可以利用当前合并段落的字数在整个网页的实质内容中的字数的比率来计算重要程度,对该比率分配合适的权重,使用该比率和该比率的权重进行计算。
步骤7)确定包含有图片的重要程度最高的合并段落,并将该合并段落中的图片确定为待提取的目标图片;
如果合并段落的重要程度值越大,则该合并段落越重要,越能体现网页的主要内容,最重要的合并段落的图片即为整个网页中相关性较高的图片;如果该合并段落或者该合并段落上下没有图片,按照得到的重要程度值的从大到小对合并段落进行排序,确定包含有图片的重要程度最高的合并段落,并将该合并段落中的图片确定为待提取的目标图片。如果一直没找到图片,则停止搜索,表示这篇网页页面没有图片。
步骤8)从服务器中获取目标图片。
在确定了待提取的目标图片后,需要从图片的原始存储地址中提取出图片才能在图片所在的原始网页之外的区域展示图片,因此需要向服务器发送请求以提取图片。
一般情况下,通过PHP(Hypertext Preprocessor,超文本预处理语言)的curl库向服务器发送http(Hypertext transfer protocol,超文本传输协议)请求,http请求里包含两个部分:头信息和主要内容,其中头信息中包含referer字段,在referer字段包含http请求的来源地址(即请求抓取或展示图片的链接地址)。当服务器接收到上述请求信息时,允许将图片提取出来。其中,http referer作为头信息的一部分,当浏览器向服务器发送请求的时候,一般会带上referer字段,告诉服务器请求是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。使用PHP的curl库可以简单和有效地去抓网页,只需要运行一个脚本,然后分析一下所抓取的网页,然后就可以以程序的方式得到想要的数据了。无论是想从一个网页上取部分数据,或是取一个XML(Extensible Markup Language,可扩展标记语言)文件并把其导入数据库,哪怕就是简单的获取网页内容,都可以使用PHP的curl库来抓取网页。
但是有些网站为了防止图片被滥用,通常对图片做了防盗链。所有的图片防盗链原理都是判断请求抓取图片的http请求头信息中的referer字段是否是图片所在的原始网站的,如果不是,则不允许抓取该图片。因此,当从图片的原始存储地址中抓取图片时,为了避免防盗链的限制,本发明在通过PHP的curl库发送http请求时,修改http请求的referer字段,将其修改成原始网页的referer字段,即将referer字段中包含的链接地址修改为图片所在的原始页面的链接地址,使得请求的时候模拟用户访问图片所在的原始页面的情形,从而能够从图片的原始存储地址中抓取出图片。
例如,当需要抓取淘宝上的一张图片时,则将http请求的referer字段修改成以下形式即可。
<?php
curl_setopt($ch,CURLOPT_REFERER,'http://www.taobao.com');
?>
提取图片后,还需要对提取的图片进行压缩、保真等处理,并将其缓存在服务器中。为了方便查找,可以将图片在服务器上的存储地址存储在数据库中,当需要从服务器中提取图片时,可以根据图片的存储地址到服务器中查找相应的图片。
另外,在获取图片时也可以设定一个阈值,例如与图片的长和宽对应的第三阈值,如果获取的图片的长和宽均小于该第三阈值,则认为该图片与网页内容的相关度较低,进而放弃该图片,不将其作为相关度高的图片。
为了进一步提高获取与网页内容相关度高的图片的准确度,针对网页中文字较少的情况,例如百度首页,可以首先对网页的文字数量进行判断,在网页中的文字数目大于设定的第一阈值时,按照上述步骤1)-8)获取与网页内容相关度高的目标图片;在网页中的文字数目不大于设定的第一阈值时,首先根据网页源代码查找网页的主标题,根据网页源代码将位于网页主标题附近的图片作为与网页内容相关度高的目标图片;如果没有网页主标题,则根据网页源代码查找位于网页中的第一张图片作为与网页内容相关度高的目标图片。如果查找不到图片,则表示网页之上没有图片。
同理,针对网页中先出现图片后出现文字内容或者文字较少等情况,也可以首先根据网页源代码查找网页的主标题,将位于网页主标题下的图片作为与网页内容相关度高的目标图片;如果没有网页主标题,则根据网页源代码查找位于网页文字内容之上的第一张图片作为与网页内容相关度高的目标图片。如果网页文字内容之上没有图片,则按照上述步骤1)-8)获取与网页内容相关度高的目标图片。
本实施例的从网页中提取图片的方法,能够有效提取到与网页内容相关度较高的图片。该方法通过抓取整个网页的内容,然后对整个网页内容依次进行分析,具体包括去掉不相干的内容、对段落按照词语拆分、过滤、合并,综合分析合并后的段落与全文的吻合度、关键词密度、段落字数等信息识别出能够体现阐述网页主要内容的段落,进而将出现在该段落附近的图片提取出来,作为与网页内容相关度较高的图片。
比如CSDN的近期关于Hyper-V和Azure开始支持Oracle软件的新闻页面(声明:该页面引用至CSDN,引用该页面仅为说明本发明的方案):http://www.csdn.net/article/2013-06-24/2815962-Oracle(如图4所示),在做图片选取的时候,首先抓取整个网页的内容,然后依次执行上述步骤1)-8):去掉不相干的内容,对段落按照词语拆分,过滤,合并,根据分析合并后的段落选择目标图片,最后得到的图片实际就是页面中最惹人注意的那张拉里·埃里森的头像。
本发明的技术方案可以应用在网页预览中,在得到目标图片中,记录目标图片与对应网页的地址之间的对应关系,在接收到用户选中网页的地址的触发指令时,根据该对应关系确定与网页的地址对应的目标图片,并向用户展示目标图片。这样在用户选中一个网页地址后,就可以向用户展示与该网页地址对应的网页相关度较高的图片,用户只需要预览提取出的图片,即可大致了解网页的主要内容。
下面对几种具体的应用场景进行介绍:
应用一:
从网页中提取出来的目标图片可以应用在“收藏夹”功能中,例如“web收藏夹”功能中。
当接收到用户收藏网页的指令时,客户端设备向服务器端发送收藏请求,服务器接收到收藏请求时,服务器抓取收藏网页的源代码,客户端设备按照步骤1)至8)的方法获取收藏网页中的主要图片,并将图片存储在服务器上。
图5为一种“web收藏夹”的一种界面的示意图,该界面从左到右依次包括三个内容栏,最左边为文件夹栏,中间为地址栏,最右边为预览栏。其中文件夹栏中,文件夹是用户对收藏的网址进行分类整理后形成的;地址栏中显示用户在文件夹栏中选中的文件夹中包含的地址列表,地址列表中的地址通常以地址名称的形式显示出来,即当用户在文件夹栏中选中一个文件夹时,该文件夹中包含的地址以列表的形式显示在地址栏中;预览栏中显示用户在地址栏中选中的地址所对应的网页的预览信息。当用户点击到地址栏中的某个名称上时,即打开该名称对应的网页。当用户在地址栏中点击某个名称周围横向空白区域时,将该名称所对应的网页的预览信息将展示在预览栏,其中展示的预览信息包括通过本发明的技术方案提取的图片。当然,预览栏中除了包含图片之外,还可以包含其他体现网页内容的信息,如摘要、URL(Uniform Resource Locator,统一资源定位符)、二维码等。
这样在用户使用“收藏夹”功能时,只需要点击网页地址周围的空白区域,就可以预览到与该网页地址对应的网页相关度较高的图片,即可大致了解网页的主要内容。
应用二:
从网页中提取出来的目标图片可以应用在“历史记录”功能中。现有的浏览器在用户浏览完一些网页后,会将这些网页的地址保存在“历史记录”中。
通过本发明的技术方案可以在用户浏览网页时,抓取所浏览网页的主要图片,并将图片存储在服务器上。
“历史记录”的界面从左到右可以包括有两个内容栏,左边为地址栏,右边为预览栏。地址栏中显示的是用户浏览过的网页的地址列表,地址列表中的地址通常以地址名称的形式显示出来;预览栏中显示用户在地址栏中选中的地址所对应的网页的预览信息。当用户在地址栏中点击某个名称周围横向空白区域时,将该名称所对应的网页的预览信息将展示在预览栏,其中展示的预览信息包括通过本发明的技术方案提取的图片。当然,预览栏中除了包含图片之外,还可以包含其他体现网页内容的信息,如摘要、URL(UniformResource Locator,统一资源定位符)、二维码等。
这样在用户使用“历史记录”功能时,只需要点击网页地址周围的空白区域,就可以在预览栏中看到与该网页地址对应的网页相关度较高的图片,快速了解网页的主要内容。
应用三:
本发明还可以适用于所有的对web页面分析的应用中。比如,在进行网页搜索时,通过浏览器可以搜索出一些网页的链接,如果一个个点开网页去看网页的内容会很费时费力,而且点开之后很可能会发现网页中的内容并不是自己所需要的。
通过本发明的技术方案可以当用户选中某个链接时,比如用户点击某个链接周围横向空白区域时,提取出与用户选中的网页的内容相关度较高的图片,并将图片展示给用户,当然同时展示给用户的不仅仅包括图片,还可以包含能够其他体现网页内容的信息,比如摘要、简述、二维码等,这样可以使用户在不打开搜索结果页面的时候,通过所展示的内容即可了解选中网页的大致内容。
此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同物理上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
在本发明各方法实施例中,所述各步骤的序号并不能用于限定各步骤的先后顺序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也在本发明的保护范围之内。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。