`
gcgmh
  • 浏览: 349463 次
  • 性别: 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")); 
        } 

分享到:
评论

相关推荐

    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

    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;/...

    html中meta标签及用法详解

    &lt;meta&gt; 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。这篇文章给大家介绍了html中meta标签及用法详解,感兴趣的朋友一起看看吧

    javascript设置页面背景色及背景图片的方法

    本文实例讲述了javascript设置页面背景色及背景图片的方法。分享给大家供大家参考,具体如下: &lt;!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt; New ...

    html-meta-tags-hero:HTML Meta标签完整列表的摘要,使您的网站排名第一

    meta name =" keywords " content =" your tags " /&gt; &lt; meta name =" description " content =" 150 words " /&gt; &lt; meta name =" subject " content =" your website's subject " &gt; &lt; meta name =...

    被忽视的META标签之特效(页面过渡效果)

    在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实...meta name="KEYWORDS" content="…"&gt;//说明关键词; &lt;meta name="DESCRIPTION" content="…"&gt;//说明主

    html5网页设计作业

    网页设计 &lt;!... &lt;meta charset="utf-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale... &lt;meta name="keywords" con

    php获取网站百度快照日期的方法

    本文实例讲述了php获取...meta name="keywords" content="百度,baidu,查询快照结果"&gt; &lt;meta name="description" content="php查询网站快照日期: "&gt; &lt;/head&gt; &lt;body&gt; &lt;?php $k=isset($_POST['k']

    HTML5各种头部meta标签的功能(推荐)

    &lt;!...&lt;head lang=”en”&gt; 标准的 lang 属性写法 &lt;meta charset=’utf-8′&gt;...meta name=”description” content=”不超过150个字符”/&gt; 页面描述 &lt;meta name=”keywords” content=””/&gt; 

    使用CSS中的meta实现web定时刷新或跳转的方法

    除了我们常用的定义编码、关键字(name=”keywords”)、描述(name=”description”)(for SEO),还可以定义视区大小、缩放比例等(for 移动端),如下: CSS Code复制内容到剪贴板 &lt;meta name="viewport" content=...

    phpcms参考手册二次开发

    metaname="keywords"content="{$head[keywords]}"&gt; {$head[description]}网页描用法:&lt;metaname="description"content="{$head[description]}"&gt; 指向网站根目录用法:[removed][removed] 广告模块域名...

    偶游网网页meta标签优化器 v1.68

    偶游网网页meta标签优化器,不会做HTML头文件SEO优化的站长可以使用这个!包括了meta中的多项生成,如Description和Keywords等!

    【JavaScript源代码】canvas绘制刮刮卡效果.docx

    DOCTYPE html&gt;  &lt;html&gt;  &lt;head&gt;   &lt;meta name="keywords" content="风舞红枫,前端技术,canvas"/&gt; &lt;meta name="description" content="风舞红枫,前端技术,canvas,vue,react,node,个人博客"/&gt; &lt;meta charset=...

    html中的meta标记简单对照

    meta name=”keywords” content=”value”&gt;多个关键字内容之间可以用“,”分隔 设置描述:&lt;meta name=”description” content=”value”&gt; 设置作者:&lt;meta name=”author” content=”作者名”&gt; ...

    新浪博客网页源码

    meta name="keywords" content="用dreamweaver当ftp上传网站文件并管理网站的方法_往事如疯_新浪博客,往事如疯,杂谈" /&gt; &lt;meta name="description" content="用dreamweaver当ftp上传网站文件并管理网站的方法_...

    星空.html好看的宇宙星空

    &lt;META NAME="Keywords" CONTENT=""&gt; &lt;META NAME="Description" CONTENT=""&gt; body { background: #060e1b; overflow: hidden; } canvas { //opacity: 0.5; } &lt;canvas id="canvas"&gt;&lt;/canvas&gt; "use...

    suno AI教程及元标签.docx

    "Suno AI教程"可能指的是针对Suno ... &lt;meta name="description" content="This is an example of meta tags."&gt; &lt;meta name="keywords" content="HTML, meta tags, metadata"&gt; &lt;meta name="author" content="John Do

    HTML meta的大作用

    这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个: name 属性 1、&lt;meta name=Generator contect=&gt;用以说明生成工具(如...

    middleman-meta-tags:将元标记轻松集成到您的Middleman应用程序中

    中间人元标记 SEO gem...tags title : 'Relevant title'title 'Relevant title'描述 set_meta_tags description : 'Powerful website full of best practices and keywords'description 'Powerful website full of bes

    meta-tags-html:清单标记清单-Projet en cours

    meta name =" keywords " content =" your, tags "/&gt; &lt; meta name =" description " content =" 150 words "/&gt; &lt; meta name =" subject " content =" your website's subject " &gt; &lt; meta name =...

Global site tag (gtag.js) - Google Analytics