php 向访客和爬虫显示不同的内容


Posted in PHP onNovember 09, 2009

听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我刚刚已经撤下这样的处理, 直到确定其不属于作弊. 有魄力的朋友可以继续使用, 但后果自负.

本博客的首页和存档页面以列表的形式显示文章, 在访客点击展开文章时才加载文章的内容. 因为文章的内容部分包含了大量的文字和图片, 需要大量的加载时间和流量. 尽快地向访客展示网页可以挽留大量的来访者. 而对于手机用户来说, 加载时间和流量则更为重要.

一般来说, 网站的首页是搜索引擎访问最多的页面, 应该尽可能的向它们展示有意义的内容, 但是要以列表的形式显示文章的话, 访客和搜索引擎只能获取到文章标题信息. 文章内容或者摘要 (尤其是文章的第一句) 对于 SEO 来说是极其重要的, 所以我们要设法向爬虫发送这些内容.

好, 我们可以通过 User Agent 来判断访问者是否为爬虫, 如果是, 则以一般形式显示文章, 否则以列表形式显示文章列表. 可以用以下的 PHP 方法判断是否为爬虫:

function is_crawler() { 
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); 
$spiders = array( 
‘Googlebot', // Google 爬虫 
‘Baiduspider', // 百度爬虫 
‘Yahoo! Slurp', // 雅虎爬虫 
‘YodaoBot', // 有道爬虫 
‘msnbot' // Bing爬虫 
// 更多爬虫关键字 
); 
foreach ($spiders as $spider) { 
$spider = strtolower($spider); 
if (strpos($userAgent, $spider) !== false) { 
return true; 
} 
} 
return false; 
}

这是我使用的方法, 各爬虫以访问评论由高到低进行排序. 然后通过下面的的方法向爬虫和自然人显示不同的内容
PHP 相关文章推荐
如何在PHP中使用Oracle数据库(3)
Oct 09 PHP
基于Zookeeper的使用详解
May 02 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
php面向对象重点知识分享
Sep 27 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
php 将excel导入mysql
Nov 09 #PHP
PHP CKEditor 上传图片实现代码
Nov 06 #PHP
PHP 压缩文件夹的类代码
Nov 05 #PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 #PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 #PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 #PHP
初学CAKEPHP 基础教程
Nov 02 #PHP
You might like
在线增减.htpasswd内的用户
2006/10/09 PHP
php mysql索引问题
2008/06/07 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
php制作文本式留言板
2015/03/18 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
jquery垂直公告滚动实现代码
2013/12/08 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python中的多线程实例教程
2014/08/27 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
大学总结自我鉴定
2014/01/18 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
公司任命书模板
2014/06/06 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
北京爱情故事观后感
2015/06/12 职场文书
生产车间管理制度
2015/08/04 职场文书
小学班主任研修日志
2015/11/13 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android