让你的网站记录蜘蛛来访次数吧
来源:互联网 发布:家庭音响5.1 知乎 编辑:程序博客网 时间:2024/05/17 07:05
文章转自:爱符号 http://www.afuhao.com/article_articleId-142.shtml
如果你是一个站长,如果你有自己的博客网站,如果你会编程,有没有想过,统计一下每天有哪些搜索引擎来访问过你的网站,方便知道收录的大概情况。
首先说明一点,搜索引擎会定期派出它们的机器人(蜘蛛),来访问你的网站,将你的网页收录在数据库中,如果被审核为有效内容,以后在搜索引擎上面搜索类似的关键词时,就能找到你的网站链接。
比如搜索:爱符号,就有可能看到首页 或者页面标题带此关键词的链接,或者是页面内容内容有此关键词的链接。
那么现在教你在asp.net中实现这样的功能。
网上其实也能找到一些类似的程序代码,可能会是php或asp的。
首先认识一下:global.asax
它是全局的一个文件,每次请求都会执行它里面的一些方法。
我们在这里要用到的就是:Application_BeginRequest,在请求执行之前。
注意:Application_BeginRequest 中不能用Session 和 Response,可以用 Request
废话少说,看代码:
- protected override void Application_BeginRequest(object sender, EventArgs e) {
- RecordSpider();//记录蜘蛛来访
- }
- private void RecordSpider(){
- string spiderName=GetSpiderName(Request.UserAgent);//得到蜘蛛的标识,
- if(!string.IsNullOrEmpty(spiderName)){//没名称的时候,就不是蜘蛛
- //记录:今日:蜘蛛名称,时间,次数(加1)
- //建议表结构:{ Id,Day,Name,Count,CreateDate}
- //Id:主键,自增
- //Day:int,用于保存日期数字方便查询,例:20121228
- //Name:varchar(64),蜘蛛名称,如果想更高效,可以用数字,
- //Count:次数,今日内将持续叠加此值
- //CreateDate:最后一次来访时间,即今日内,每来一次,此值将被更新为当前时间
- //判断:今日此蜘蛛没有来过:插入一条记录,反之叠加Count并更新CreateDate
- }
- }
- /// <summary>
- /// 获取蜘蛛名称
- /// </summary>
- /// <param name="userAgent">user-agent header</param>
- /// <returns>返回已知蜘蛛名称</returns>
- public static string GetSpiderName(string userAgent) {
- if (string.IsNullOrEmpty(userAgent))
- return string.Empty;
- if (ContainsAny(userAgent, "Sosospider"))//其实很简单,蜘蛛总是会在HTTP头 User-Agent 中,留下一些特殊的标识(不排除有的网站故意这样做)
- return "SosoSpider";
- if (ContainsAny(userAgent, "Googlebot"))
- return "Googlebot";
- if (ContainsAny(userAgent, "Baiduspider"))
- return "BaiduSpider";
- return string.Empty;//暂时只写这些,实际代码有很多的,我这里只是贴一部分,雅虎 MSN BING 都是可以支持
- nbsp;}
- //包含任意,用于在指定的文本中,包含其中一个文本就返回true
- private static bool ContainsAny(string text, params string[] values) {
- if (string.IsNullOrEmpty(text))
- return false;
- if (values == null || values.Length == 0)
- return false;
- bool result = false;
- foreach (var item in values) {
- if (text.IndexOf(item, StringComparison.OrdinalIgnoreCase) != -1) {
- result = true;
- break;
- }
- }
- return result;
- }
双击项目中的global.asax 进入代码窗口后,把上面的代码放进去,然后放到网站上,看看有没有蜘蛛来过。
代码中没有指明如何记录,请自行建立表,和后台页面显示。这些都是数据插入、更新、查询的事情。
看看本站的记录吧:
谷歌:142(7秒前)
百度:101(6分钟前)
搜搜:46(半小时前)
昨日:
百度:650(11小时前)
搜搜:59(12小时前)
谷歌:184(11小时前)
必应:4(半天前)
雅虎:4(半天前)
前日:
谷歌:292(昨天23:37)
搜搜:63(昨天23:41)
百度:268(昨天23:55)
雅虎:3(昨天11:36)
必应:1(昨天16:08)
文章转自:爱符号 http://www.afuhao.com/article_articleId-142.shtml
- 让你的网站记录蜘蛛来访次数吧
- 怎么让蜘蛛喜欢你的网站
- 如何让百度蜘蛛每天抓取你网站的内容
- 小心你的网站让百度蜘蛛抓取不到
- 记录访客来访次数
- seo如何让百度蜘蛛天天抓取你网站的内容
- 如何知道蜘蛛爬过你的网站
- 如何让蜘蛛成为您网站的常客
- 如何禁止搜狗蜘蛛爬行你的网站
- 网站频繁出现304状态码及抓取蜘蛛次数较少的原因分析
- SEO如何让蜘蛛适应你
- 让人迷惑的200 0 64百度蜘蛛爬行记录
- 怎么样让蜘蛛程序更喜欢爬你的WEB页面的CSS文件
- SEO优化如何让蜘蛛黏上你的站进行快照
- seo -- 如何阻止百度蜘蛛对你的网站的爬行
- 爱上你的网站,把百度蜘蛛当宠物养的必然法则
- 通过HTTP状态代码查看搜索引擎蜘蛛如何爬行你的网站
- 如何让你的网站支持SSL
- 基于JsessionId的会话跟踪登录设计与实现
- hdu 2955 Robberies(01背包)
- 自制AutoMapper实现DTO到持久层Entity的转换
- Android Launcher构建之拖拽初步
- UESTC 1307 windy数 数位DP
- 让你的网站记录蜘蛛来访次数吧
- NYOJ155-求高精度幂
- JAVA学习笔记1【面向对象】
- ODBC连接数据库 防止忘记释放内存
- Linux netfilter源码分析(1)
- ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)
- C# 析构函数(Destructor)和终结器(Finalizer)——托管资源的释放
- 设备模型3之sysfs
- utf8与gb2312有什么区别