通过jericho包获取meta里的keywords及description的方法一:
// 获取meta里的keywords和description
List segments = source.findAllElements(Tag.META);
getKeywordsDesc(segments);
if (null != segments) {
String keywordsStr = null;
String descriptionStr = null;
int sumSegments = segments.size();
if (sumSegments > 0) {
for (int i = 0; i < sumSegments; i++) {
String metaStr = segments.get(i).toString();
if (null != metaStr && !"".equals(metaStr.trim())) {
// 获取description
if (metaStr.indexOf("description") != -1
&& metaStr.indexOf("content") != -1) {
metaStr = metaStr.replaceAll("\"", "").replaceAll(
"/", "");
descriptionStr = metaStr.substring(metaStr
.indexOf("content"));
descriptionStr = descriptionStr.substring(
descriptionStr.indexOf("=") + 1,
descriptionStr.length() - 1);
descriptionStr = TextHtml.html2text(descriptionStr);
}
parserBean.setDescription(removeTag(descriptionStr));
// 获取keywords
if (metaStr.indexOf("keywords") != -1
&& metaStr.indexOf("content") != -1) {
metaStr = metaStr.replaceAll("\"", "").replaceAll(
"/", "");
keywordsStr = metaStr.substring(metaStr
.indexOf("content"));
keywordsStr = keywordsStr
.substring(keywordsStr.indexOf("=") + 1,
keywordsStr.length() - 1);
keywordsStr = TextHtml.html2text(keywordsStr);
parserBean.setKeywords(removeTag(keywordsStr));
}
}
}// for over
}
}
方法二:
/**
* 获取meta里的keywords和description
*/
private void getKeywordsDesc(List segments) {
if (null != segments) {
String keywords = null;
String description = null;
int sumSegments = segments.size();
for (int i = 0; i < sumSegments; i++) {
String segment = segments.get(i).toString().toLowerCase() ;
if (null != segment && !"".equals(segment.trim())) {
// 获取meta里的keywords
if (segment.indexOf("keywords") > 0
&& segment.indexOf("content") > 0) {
String patternStr = "< *meta *name *= *\"? *keywords *\"? *content *= *\"?(.*) *\"? */? *>";
keywords = Regex(patternStr, segment);
if (null == keywords) {
patternStr = "< *meta *content *= *\"?(.*) *\"? *name *= *\"? *keywords *\"? */? *>";
keywords = Regex(patternStr, segment);
}
if (null != keywords) {
keywords = removeTag(keywords);
}
this.keyowrds = keywords.replace("/", "").replace("\"", "");
}
// 获取meta里的description
if (segment.indexOf("description") > 0
&& segment.indexOf("content") > 0) {
String patternStr = "< *meta name *= *\"? *description *\"? *content *= *\"?(.*) *\"? */? *>";
description = Regex(patternStr, segment);
if (null == description) {
patternStr = "< *meta *content *= *\"?(.*) *\"? *name *= *\"? *description *\"? */? *>";
description = Regex(patternStr, segment);
}
if (null != description) {
description = removeTag(description).replace("/", "");
}
this.description = description.replace("/", "").replace("\"", "");
}
}
}
}
}
private String Regex(String patternStr, String segment) {
String str = null;
Pattern p = Pattern.compile(patternStr,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(segment);
while (m.find()) {
str = m.group(1);
}
return str;
}
用htmlparser获取meta里面的keywords及descripton
Parser parser=new Parser(url);
NodeFilter filter=new NodeClassFilter(MetaTag.class);
NodeList nodelist=parser.extractAllNodesThatMatch(filter);
for(Node node:nodelist.toNodeArray())
{
MetaTag meta=(MetaTag) node;
System.out.println(meta.getAttribute("name")+":"+meta.getAttribute("content"));
}
分享到:
相关推荐
在Web开发中,有时候我们需要从一个网站中获取其元数据,如关键词(keywords)和描述(description),这些信息通常被搜索引擎用来理解网页的内容。本文将介绍如何使用Java编程语言,结合jsoup库来实现这一功能。 首先...
### HTML Meta标签使用方法详解 #### 一、Meta标签简介 HTML中的`<meta>`标签是一种重要的元数据标记,它通常位于文档的`<head>`部分。Meta标签用于定义关于HTML文档的元信息,这些信息不会显示在页面上,但对...
使用如下钩子即可,但是前提条件是 没有默认配置head的title asyncData ({ app }, callback) { app.head.title = ‘new title' callback(null, {}) ...meta data-n-head=”1″ data-hid=”description” name=”des
<meta name="description" content="这是一个优秀的WebApp示例,展示了如何使用各种meta标签来增强移动体验。"> <meta name="author" content="张三"> <meta name="robots" content="index, follow"> <!-- ...
2. 关键词(Keywords):虽然现代搜索引擎已经降低了meta keywords标签的权重,但在Zencart中填写相关关键词仍有一定帮助,尤其是在产品描述中自然融入关键词。商家应选择与商品相关的、具有较高搜索量的关键词,但...
- **`name`属性**:与`content`属性一起使用,用于定义页面的元数据,如`<meta name="description" content="网站描述">`和`<meta name="keywords" content="关键词列表">`。 2. **`<meta http-equiv>`标签**:类似...
用法:<Meta name=”Description” Content=”HTML 元标签解析及 SEO 优化”> Meta 标签的使用可以提高网站的搜索引擎优化(SEO),提高网站的排名和可见性。因此,合理使用 Meta 标签可以对网站的发展和推广产生...
<meta name="keywords" content="网页设计, meta, SEO"> ``` `<meta http-equiv>` 属性则可以模拟 HTTP 响应头,比如设置缓存策略或页面刷新: ```html <!-- 3秒后自动跳转到指定URL --> <meta ...
对于SEO来说,`description`和`keywords`尤其重要,因为它们直接影响到搜索结果的展示。同时,`http-equiv`属性中的`Content-Type`和`Charset`用于确保正确显示非ASCII字符,而`Refresh`则可用于实现简单的页面...
除了基础的添加和获取,laravel-meta还允许你对元数据进行验证,确保输入的数据符合预期。你可以在模型类中定义一个`$metaRules`属性,里面包含元数据字段的验证规则: ```php protected $metaRules = [ 'title' =...
本文实例讲述了JS获取多维数组中相同键的值实现方法。分享给大家供大家参考,具体如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> Demo </...
<meta name="Keywords" content="science, education, culture, politics, economics, relationships, entertainment, human"> ``` - **Description (描述)**:提供了关于页面内容的一个简短描述。 ```html ...
<meta name="description" content="这是一个简短的网页描述。"> ``` 在这个例子中,`name`属性指定了元数据的名称(这里是“description”),而`content`属性则包含了实际的元数据内容(这里是对网页的一个简短...
在构建网页的过程中,合理运用`<meta>`标签对于网站优化、页面显示及搜索引擎识别等方面具有重要作用。本文将详细解读HTML页面上`<meta>`标签的功能及其应用场景。 #### `<meta>`标签的基本概念 `<meta>`标签位于...
Meta信息主要包括Meta标签,如`<meta name="description">`(描述)、`<meta name="keywords">`(关键词)、`<meta name="title">`(页面标题)等。这些标签向搜索引擎提供关于网页内容的简要概述,影响着搜索引擎...
- 使用合适的`<meta name="description">`和`<meta name="keywords">`来提高搜索引擎排名。 - 避免滥用`<meta http-equiv="Refresh">`标签,因为它可能会导致用户困惑。 - 在设置`<meta name="robots">`时要谨慎...
<meta name="description" content="网页描述文字"> ``` 添加这些信息有助于搜索引擎理解页面内容,提高被搜索到的概率。需要注意的是,关键词应真实反映页面内容,描述应简洁明了。 3. 自动跳转: ```html ...
4. **name属性**:常用于SEO,如`<meta name="description" content="页面描述">`提供页面的简短介绍,`<meta name="keywords" content="关键词,列表">`指定关键词。 5. **viewport属性**:对于移动设备,`<meta ...
例如,`<meta name="Keywords" content="...">` 可以帮助搜索引擎理解页面的主要主题,而 `<meta name="Description" content="...">` 可以为搜索引擎提供一个简短的页面摘要。 ##### 2. 控制缓存行为 `<meta>` ...