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下使用以下代码连接并测试
Apr 09 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP批斗大会之缺失的异常详解
Jul 09 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python中requests和https使用简单示例
2018/01/18 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
django自定义模板标签过程解析
2019/12/14 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
护理专科毕业推荐信
2013/11/10 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android