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 相关文章推荐
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
php连接数据库代码应用分析
May 29 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
php密码生成类实例
Sep 24 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
PHP中的self关键字详解
Jun 23 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
PHP中路径问题的解决方案
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
python求crc32值的方法
2014/10/05 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python绘制直方图和密度图的实例
2019/07/08 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
利用python 读写csv文件
2020/09/10 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
zooplus意大利:在线宠物商店
2019/08/07 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书