`
gcgmh
  • 浏览: 354270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取meta里的keywords及description的方法

 
阅读更多
通过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")); 
        } 

分享到:
评论

相关推荐

    java实现获取网站的keywords,description

    在Web开发中,有时候我们需要从一个网站中获取其元数据,如关键词(keywords)和描述(description),这些信息通常被搜索引擎用来理解网页的内容。本文将介绍如何使用Java编程语言,结合jsoup库来实现这一功能。 首先...

    html meta标签使用方法

    ### HTML Meta标签使用方法详解 #### 一、Meta标签简介 HTML中的`&lt;meta&gt;`标签是一种重要的元数据标记,它通常位于文档的`&lt;head&gt;`部分。Meta标签用于定义关于HTML文档的元信息,这些信息不会显示在页面上,但对...

    nuxt 服务器渲染动态设置 title和seo关键字的操作

    使用如下钩子即可,但是前提条件是 没有默认配置head的title asyncData ({ app }, callback) { app.head.title = ‘new title' callback(null, {}) ...meta data-n-head=”1″ data-hid=”description” name=”des

    WebApp里的Meta标签大全

    &lt;meta name="description" content="这是一个优秀的WebApp示例,展示了如何使用各种meta标签来增强移动体验。"&gt; &lt;meta name="author" content="张三"&gt; &lt;meta name="robots" content="index, follow"&gt; &lt;!-- ...

    zencart批量自定义商品、类别等title、keywords、description

    2. 关键词(Keywords):虽然现代搜索引擎已经降低了meta keywords标签的权重,但在Zencart中填写相关关键词仍有一定帮助,尤其是在产品描述中自然融入关键词。商家应选择与商品相关的、具有较高搜索量的关键词,但...

    html中标签meta的详细使用方法和作用

    - **`name`属性**:与`content`属性一起使用,用于定义页面的元数据,如`&lt;meta name="description" content="网站描述"&gt;`和`&lt;meta name="keywords" content="关键词列表"&gt;`。 2. **`&lt;meta http-equiv&gt;`标签**:类似...

    html语言meta标签解析及SEO优化

    用法:&lt;Meta name=”Description” Content=”HTML 元标签解析及 SEO 优化”&gt; Meta 标签的使用可以提高网站的搜索引擎优化(SEO),提高网站的排名和可见性。因此,合理使用 Meta 标签可以对网站的发展和推广产生...

    网页设计中meta详解

    &lt;meta name="keywords" content="网页设计, meta, SEO"&gt; ``` `&lt;meta http-equiv&gt;` 属性则可以模拟 HTTP 响应头,比如设置缓存策略或页面刷新: ```html &lt;!-- 3秒后自动跳转到指定URL --&gt; &lt;meta ...

    HTML中meta详解

    对于SEO来说,`description`和`keywords`尤其重要,因为它们直接影响到搜索结果的展示。同时,`http-equiv`属性中的`Content-Type`和`Charset`用于确保正确显示非ASCII字符,而`Refresh`则可用于实现简单的页面...

    Laravel开发-laravel-meta

    除了基础的添加和获取,laravel-meta还允许你对元数据进行验证,确保输入的数据符合预期。你可以在模型类中定义一个`$metaRules`属性,里面包含元数据字段的验证规则: ```php protected $metaRules = [ 'title' =...

    JS获取多维数组中相同键的值实现方法示例

    本文实例讲述了JS获取多维数组中相同键的值实现方法。分享给大家供大家参考,具体如下: &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt; Demo &lt;/...

    meta标签中的

    &lt;meta name="Keywords" content="science, education, culture, politics, economics, relationships, entertainment, human"&gt; ``` - **Description (描述)**:提供了关于页面内容的一个简短描述。 ```html ...

    ( javascript中meta的功能

    &lt;meta name="description" content="这是一个简短的网页描述。"&gt; ``` 在这个例子中,`name`属性指定了元数据的名称(这里是“description”),而`content`属性则包含了实际的元数据内容(这里是对网页的一个简短...

    html meta metahtml

    在构建网页的过程中,合理运用`&lt;meta&gt;`标签对于网站优化、页面显示及搜索引擎识别等方面具有重要作用。本文将详细解读HTML页面上`&lt;meta&gt;`标签的功能及其应用场景。 #### `&lt;meta&gt;`标签的基本概念 `&lt;meta&gt;`标签位于...

    站长工具站网页Meta信息检测工具

    Meta信息主要包括Meta标签,如`&lt;meta name="description"&gt;`(描述)、`&lt;meta name="keywords"&gt;`(关键词)、`&lt;meta name="title"&gt;`(页面标题)等。这些标签向搜索引擎提供关于网页内容的简要概述,影响着搜索引擎...

    meta标签详解

    - 使用合适的`&lt;meta name="description"&gt;`和`&lt;meta name="keywords"&gt;`来提高搜索引擎排名。 - 避免滥用`&lt;meta http-equiv="Refresh"&gt;`标签,因为它可能会导致用户困惑。 - 在设置`&lt;meta name="robots"&gt;`时要谨慎...

    meta的用法(需要的可以看看,很受益的)

    &lt;meta name="description" content="网页描述文字"&gt; ``` 添加这些信息有助于搜索引擎理解页面内容,提高被搜索到的概率。需要注意的是,关键词应真实反映页面内容,描述应简洁明了。 3. 自动跳转: ```html ...

    header和meta头部信息

    4. **name属性**:常用于SEO,如`&lt;meta name="description" content="页面描述"&gt;`提供页面的简短介绍,`&lt;meta name="keywords" content="关键词,列表"&gt;`指定关键词。 5. **viewport属性**:对于移动设备,`&lt;meta ...

    JSP标签 <meta>的作用

    例如,`&lt;meta name="Keywords" content="..."&gt;` 可以帮助搜索引擎理解页面的主要主题,而 `&lt;meta name="Description" content="..."&gt;` 可以为搜索引擎提供一个简短的页面摘要。 ##### 2. 控制缓存行为 `&lt;meta&gt;` ...

Global site tag (gtag.js) - Google Analytics