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用mysql数据库存储session的代码
Mar 05 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
Oct 19 PHP
PHP四大安全策略
Mar 12 PHP
php数组删除元素示例
Mar 21 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
php的socket编程详解
Nov 20 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 PHP
Jsonp劫持学习
Apr 01 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/12/04 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JavaScript DOM基础
2015/04/13 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
python中map、any、all函数用法分析
2015/04/21 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
深入理解Python3 内置函数大全
2017/11/23 Python
详解django自定义中间件处理
2018/11/21 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
ajax是什么及其工作原理
2012/02/08 面试题
大学生两会精神学习心得体会
2014/03/10 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
教师节座谈会主持词
2015/07/03 职场文书
考试后的感想
2015/08/07 职场文书