正则匹配网页的keywords部门,主要的要领也是获取页面的源代码,然后再从中利用正则匹配出来。可是PHP就有一个自带的函数get_meta_tags()。这个函数可以逐行理会文件中的 <meta> 标签理会事情将在 </head> 处遏制。
可以想到,他的效率应该比收罗源码再阐明的快。
上个例子:
<?php $tags = get_meta_tags('http://enenba.com'); printf("<p>输出tags数据为:</p><pre>%s</pre>\n",var_export( $tags ,TRUE)); ?>输出的是我站的'keywords' 和'description'
虽然也可以利用正则来获取
正则:
<?php $html = file_get_contents('http://enenba.com'); $search = '|<meta[^>]+name="([^"]*)"[^>]+content="([^"]*)"[^>]+>|i'; preg_match_all($search, $html, $tags); printf("<p>输出tags数据为:</p><pre>%s</pre>\n",var_export( $tags ,TRUE)); ?>附件下载/演示源码:
【 2.htm 】 8.49KB
分享到: 更多
相关日志:
【转】PHP实现简朴爬虫
PHP判定字符串由数字和巨细写字母构成、长度至少6位
php获取百度MP3(baidu mp3)下载列表
获取<a>链接标签。从Snoopy类中提取函数
利用DOM Document工具匹配所有的<a>标签
【转】小谈php正则提取图片地点
从《网页降噪助你晋升搜索引擎表示》来做php正文提取算法
php使动态URL标签链接转成伪静态
利用Snoopy来获取某网页的所有链接
评论:
途经 2012-11-08 14:29这里的获取没有思量单双引号
enenba 2012-11-08 14:38
是的,没有思量,下次写个完整版。
途经 2012-11-08 15:02
能不能此刻写下,我不会这个正则。改来改去照旧没乐成!--
enenba 2012-11-08 16:45
$search = '|<meta[^>]+name=(["\'])(.*?)\\1[^>]+content=(["\'])(.*?)\\3[^>]+>|i';
preg_match_all($search, $html, $tags);
途经 2012-11-08 17:59
感谢了,尚有就是name和content的位置可不行能兑换过来啊
途经 2012-11-08 20:57
你获取下上面的谁人正则只能获取出来3个meta尚有几个要害meta获取不出来
array (
0 =>
array (
0 => '',
1 => '',
2 => '',
),
1 =>
array (
0 => '"',
1 => '"',
2 => '"',
),
2 =>
array (
0 => 'viewport',
1 => 'author',
2 => 'copyright',
),
3 =>
array (
0 => '"',
1 => '"',
2 => '"',
),
4 =>
array (
0 => 'width=device-width',
1 => 'Celestra',
2 => 'Celestra Corporation Copyright 2002-2012,',
),
)
我不知道怎么办理,前辈
enenba 2012-11-08 21:14