于是昨天便认真的做了一下,功能多一点,可以对各种搜索引擎统计分析。可以在多个时间段进行查看。其实代码很简单,为了更简洁些,代码压缩到6k.分为6个文件
1.安装程序 spilder_install.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <title>安装插件</title> </head> <?php if ( $_POST [ 'act' ]== 'install' ) //如果是安装 { $mysql_host =trim( $_POST [ 'mysql_host' ]); //获取主机 $mysql_user =trim( $_POST [ 'mysql_user' ]); //获取用户名 $mysql_pwd =trim( $_POST [ 'mysql_pwd' ]); //获取密码 $mysql_db =trim( $_POST [ 'mysql_db' ]); //数据库 $table_prefix =trim( $_POST [ 'table_prefix' ]); //获取前缀 if ( $link =mysql_connect( $mysql_host , $mysql_user , $mysql_pwd )) { echo "连接服务器成功!.................<br>" ; } else { echo "<script>alert('链接出错!请检查数据库服务器配置!');history.go(-1);</script>" ; } if (mysql_select_db( $mysql_db , $link )) { echo "连接数据库成功!.............<br>正在创建表................<br>" ; } $sql ="CREATE TABLE `spilder_sp_count` ( `id` bigint(20) NOT NULL auto_increment, `r_time` int(11) NOT NULL, `r_name` varchar(50) NOT NULL, `r_url` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=4 ; "; mysql_query( "DROP TABLE IF EXISTS `" . $table_prefix . "sp_count`;" ); //删除已存在 $sql = str_replace ( "spilder_" , $table_prefix , $sql ); //替换前缀 if (mysql_query( $sql )) { echo "表创建成功!正在写入文件" ; } $f = file_get_contents ( "spilder_config.php" ); //获取配置内容 $f = str_replace ( " " , "" , $f ); //去除空格 $f =preg_replace( "/mysql_host=.*;/iUs" , "mysql_host='{$mysql_host}';" , $f ); $f =preg_replace( "/mysql_user=.*;/iUs" , "mysql_user='{$mysql_user}';" , $f ); $f =preg_replace( "/mysql_pwd=.*;/iUs" , "mysql_pwd='{$mysql_pwd}';" , $f ); $f =preg_replace( "/mysql_db=.*;/iUs" , "mysql_db='{$mysql_db}';" , $f ); $f =preg_replace( "/table_prefix=.*;/iUs" , "table_prefix='{$table_prefix}';" , $f ); $f =preg_replace( "/sp_admin=.*;/iUs" , "sp_admin='{$sp_admin}';" , $f ); file_put_contents ( "spilder_config.php" , $f ); file_put_contents ( "isinstall.txt" , "OK" ); echo "恭喜!荐礼啦蜘蛛统计程序安装成功 <a href=\"index.php\">查看</a>" ; exit (); } ?> <body> <table width= "600" border= "0" align= "center" > <tr> <td align= "center" >荐礼啦 蜘蛛统计查看器</td> </tr> </table> <form method= "post" > <table width= "600" border= "0" align= "center" cellspacing= "0" > <tr> <td width= "280" > </td> <td width= "610" >开始安装</td> </tr> <tr> <td align= "right" >服务器:</td> <td><input name= "mysql_host" type= "text" id= "mysql_host" value= "localhost" /> (一般不用改)</td> </tr> <tr> <td align= "right" >用户名:</td> <td><input type= "text" name= "mysql_user" id= "mysql_user" /></td> </tr> <tr> <td align= "right" >密码:</td> <td><input type= "password" name= "mysql_pwd" id= "mysql_pwd" /></td> </tr> <tr> <td align= "right" >数据库:</td> <td><input type= "text" name= "mysql_db" id= "mysql_db" /></td> </tr> <tr> <td align= "right" >表前缀:</td> <td><input name= "table_prefix" type= "text" id= "table_prefix" value= "spilder_" /> <input name= "act" type= "hidden" id= "act" value= "install" /></td> </tr> <tr> <td align= "right" >管理密码:</td> <td><input type= "password" name= "sp_admin" id= "sp_admin" /></td> </tr> <tr> <td align= "right" > </td> <td><input type= "submit" name= "button" id= "button" value= "安装" /></td> </tr> </table> </form> </body> </html> |
2.蜘蛛记录文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<?php require ( "spilder_config.php" ); //调用配置文件 $link =mysql_connect( $mysql_host , $mysql_user , $mysql_pwd ) or die ( "服务器连接出错" ); //链接数据库 mysql_select_db( $mysql_db , $link ) or die ( '数据库连接出错' ); $searchbot = get_naps_bot(); if ( $searchbot ) { date_default_timezone_set( 'PRC' ); //设置默认时区 $r_time = strtotime ( date ( "Y-m-d H:i:s" )); //最后更新时间 $ServerName = $_SERVER [ "SERVER_NAME" ] ; $ServerPort = $_SERVER [ "SERVER_PORT" ] ; $ScriptName = $_SERVER [ "SCRIPT_NAME" ] ; $QueryString = $_SERVER [ "QUERY_STRING" ] ; $url = "http://" . $ServerName ; If ( $ServerPort != "80" ) { $url = $url . ":" . $ServerPort ; } $url = $url . $ScriptName ; If ( $QueryString != "" ) { $url = $url . "?" . $QueryString ; } //$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $GLOBALS [ 'db' ]->db_query( "insert into {$table_prefix}sp_count(r_time,r_name,r_url) values('$r_time','$searchbot','$url')" ); } function get_naps_bot() { $useragent = strtolower ( $_SERVER [ 'HTTP_USER_AGENT' ]); if ( strpos ( $useragent , 'googlebot' ) !== false){ return 'Googlebot' ; } elseif ( strpos ( $useragent , 'msnbot' ) !== false){ return 'MSNbot' ; } elseif ( strpos ( $useragent , 'slurp' ) !== false){ return 'Yahoobot' ; } elseif ( strpos ( $useragent , 'baiduspider' ) !== false){ return 'Baiduspider' ; } elseif ( strpos ( $useragent , 'sogou' ) !== false){ return 'Sogoubot' ; } elseif ( strpos ( $useragent , 'soso' ) !== false){ return 'Sosobot' ; } elseif ( strpos ( $useragent , 'youdao' )!==false) { return 'Youdao' ; } else { return false; } } ?> |
3.蜘蛛统计查看文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
<?php session_start(); require ( "spilder_config.php" ); if ( $_GET [ 'act' ]== 'logout' ) { $_SESSION [ 'ss_sp_admin' ]= '' ; //清空 } if ( $_GET [ 'sp_admin_login' ]) { if ( $_GET [ 'sp_admin_login' ]== $sp_admin ) { $_SESSION [ 'ss_sp_admin' ]= $sp_admin ; } } date_default_timezone_set( 'PRC' ); //设置默认时区 $day_start = strtotime ( date ( "Ymd" ). "000001" ); //一天的开始时间 $day_out = strtotime ( date ( "Ymd" ). "235959" ); //一天的结束时间 $day =3600*24; //一天的时间 $link =mysql_connect( $mysql_host , $mysql_user , $mysql_pwd ) or die ( "服务器连接出错" ); mysql_select_db( $mysql_db , $link ) or die ( '链接数据库出错' ); //连接数据库 if ( $_GET [ 'act' ]== 'del' ) { if ( $_SESSION [ 'ss_sp_admin' ]<> '' ) { if ( $_GET [ 'dt' ]==0) //清空 { mysql_query( "delete from {$table_prefix}sp_count " ); } $d_time =0; if ( $_GET [ 'dt' ]==1) //删除30天前 { $d_time = $day_out - $day *30; } elseif ( $_GET [ 'dt' ]==2) //删除60天前 { $d_time = $day_out - $day *60; } elseif ( $_GET [ 'dt' ]==3) //删除90天前 { $d_time = $day_out - $day *90; } elseif ( $_GET [ 'dt' ]==4) //删除180天前 { $d_time = $day_out - $day *180; } elseif ( $_GET [ 'dt' ]==5) //删除360天前 { $d_time = $day_out - $day *360; } if ( $d_time >0) { mysql_query( "delete from {$table_prefix}sp_count where r_time<'$d_time'" ); //删除数据 } } } $ss = intval ( $_GET [ 'ss' ]); if ( $ss >0) //查看分类统计 { if ( $ss ==999) //清空分类 { $_SESSION [ 'ss_ss' ]= '' ; } else { $_SESSION [ 'ss_ss' ]= $ss ; } } $ss = $_SESSION [ 'ss_ss' ]; if ( $ss ==1) { $ss = 'Baiduspider' ; } elseif ( $ss ==2) { $ss = 'Googlebot' ; } elseif ( $ss ==3) { $ss = "MSNbot" ; } elseif ( $ss ==4) { $ss = "Yahoobot" ; } elseif ( $ss ==5) { $ss = "Sogoubot" ; } elseif ( $ss ==6) { $ss = "Sosobot" ; } elseif ( $ss ==7) { $ss =7; } $t = intval ( $_GET [ 't' ]); //查看时间分类统计 if ( $t ==0) //时时情况 { if ( empty ( $_SESSION [ 'ss_ss' ])) { $sql = " select * from {$table_prefix}sp_count order by id desc " ; //最新情况 $sql2 = "select count(*) from {$table_prefix}sp_count " ; } else { $sql = "select * from {$table_prefix}sp_count where r_name='$ss' order by id desc " ; $sql2 = "select count(*) from {$table_prefix}sp_count where r_name='$ss' " ; } $rscount =mysql_query( $sql2 ); $rscount =@mysql_fetch_array( $rscount ); $rscount = $rscount [0]; //获取总记录数 $page = intval (trim( $_GET [ 'page' ])); //当前页数 $pagesize =30; //每页记录数 $pagecount = ceil ( $rscount / $pagesize ); //获取总页数 $pageurl = "" ; if ( $page <=1) { $page =1; $pageurl .= " 首页 上一页" ; } else { $pageurl .= " <a href='?page=1&ss=" . $ss . "'>首页</a> <a href='?ss=" . $ss . "&page=" .( $page -1). "'>上一页</a>" ; } if ( $page >= $pagecount ) { $page = $pagecount ; $pageurl .= " 下一页 尾页" ; } else { $pageurl .= " <a href='?ss=" . $ss . "&page=" .( $page +1). "'>下一页</a> <a href='?ss=" . $ss . "&page=" . $pagecount . "'>尾页</a>" ; } if ( $page <=1) { $page =1; } $start_rs = intval (( $page -1)* $pagesize ); //开始 $end_rs = intval ( $page * $pagesize ); //结束 $sql .= " limit {$start_rs},{$end_rs} " ; } if ( $t ==1) //查看今天天统计 { $s_time = $day_start ; //开始时间 $e_time = $day_out ; //结束时间 $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name " ; } elseif ( $t ==2) //查看昨天统计 { $s_time = $day_start - $day ; //开始 $e_time = $day_out - $day ; //结束 $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name " ; } elseif ( $t ==3) //查看前天天的统计 { $s_time = $day_start - $day *2; $e_time = $day_out - $day *2; $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name" ; } elseif ( $t ==4) //查看七天的统计 { $s_time = $day_start - $day *7; $e_time = $day_out ; $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name " ; } elseif ( $t ==5) //查看30天的 { $s_time = $day_start - $day *30; $e_time = $day_out ; $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name " ; } elseif ( $t ==6) //查看90天的统计 { $s_time = $day_start - $day *90; $e_time = $day_out ; $sql = "select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name " ; } $res =mysql_query( $sql ); // or die("请先安装程序<a href='spilder_install.php'>安装</a>"); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <title>显示蜘蛛记录情况</title> <style type= "text/css" > td{font-size:14px;} a,a:link{text-decoration:none; color:#000; } a:hover{color:#F00;} </style> </head> <body> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" style= "margin-bottom:6px;" > <tr> <td height= "28" align= "center" bgcolor= "#66CC00" ><h1><a href= "http://www.jianlila.com" target= "_blank" >荐礼啦</a> 蜘蛛查看器</h1></td> </tr> </table> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" > <tr> <td width= "65" height= "38" bgcolor= "#FFFFFF" >分类查看</td> <td width= "403" align= "center" bgcolor= "#FFFFFF" > <a href= "?ss=999" >所有的</a> <a href= "?ss=1" >百度</a> <a href= "?ss=2" >谷歌</a> <a href= "?ss=3" >必应</a> <a href= "?ss=4" >雅虎</a> <a href= "?ss=5" >搜狗</a> <a href= "?ss=6" >搜搜</a> <a href= "?ss=7" >有道</a></td> <td width= "322" bgcolor= "#FFFFFF" > <a href= "?t=0" >时时</a> <a href= "?t=1" >今天</a> <a href= "?t=2" >昨天</a> <a href= "?t=3" >前天</a> <a href= "?t=4" >七天</a> <a href= "?t=4" >30天</a> <a href= "?t=5" >90天</a> </td> </tr> </table> <?php if ( $_SESSION [ 'ss_sp_admin' ]== $sp_admin ) { ?> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" style= "margin-top:12px; margin-bottom:12px;" > <tr> <td width= "208" align= "right" bgcolor= "#FFFFFF" >管理 <a href= "?act=logout" >退出</a> </td> <td width= "585" align= "center" bgcolor= "#FFFFFF" > <a href= "?act=del&dt=0" onclick= "return confirm('确定清空')" >清空</a> <a href= "?act=del&dt=1" onclick= "return confirm('确定删除?')" >30天前</a> <a href= "?act=del&dt=2" onclick= "return confirm('确定删除?')" >60天前</a> <a href= "?act=del&dt=3" onclick= "return confirm('确定删除?')" >90天前</a> <a href= "?act=del&dt=4" onclick= "return confirm('确定删除?')" >180天前</a> <a href= "?act=del&dt=5" onclick= "return confirm('确定删除?')" >360天前</a></td> </tr> </table> <?php } ?> <?php if ( $t ==0) { ?> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" style= "margin-top:6px;" > <tr> <td width= "133" align= "center" bgcolor= "#FFFFFF" >蜘蛛</td> <td width= "217" align= "center" bgcolor= "#FFFFFF" >时间</td> <td width= "440" align= "center" bgcolor= "#FFFFFF" >地址</td> </tr> <?php while ( $rs =mysql_fetch_array( $res )) { ?> <tr> <td align= "center" bgcolor= "#FFFFFF" ><?php echo $rs [ 'r_name' ];?></td> <td align= "center" bgcolor= "#FFFFFF" ><?php echo date ( "Y-m-d H:i:s" , $rs [ 'r_time' ]); ?></td> <td align= "center" bgcolor= "#FFFFFF" ><a href= "<?php echo $rs['r_url'];?>" target= "_blank" > <?php echo $rs [ 'r_url' ];?></a></td> </tr> <?php } ?> </table> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" style= "margin-top:20px; margin-bottom:20px;" > <tr> <td align= "center" bgcolor= "#FFFFFF" ><?php echo $pageurl ;?></td> </tr> </table> <?php } else { ?> <table width= "800" border= "0" align= "center" cellspacing= "1" bgcolor= "#CCCCCC" style= "margin-top:6px;" > <tr> <td width= "219" align= "center" bgcolor= "#FFFFFF" >蜘蛛</td> <td width= "574" align= "center" bgcolor= "#FFFFFF" >统计</td> </tr> <?php while ( $rs =mysql_fetch_array( $res )) { ?> <tr> <td align= "center" bgcolor= "#FFFFFF" ><?php echo $rs [ 'r_name' ] ?></td> <td align= "center" bgcolor= "#FFFFFF" ><?php echo $rs [ 'ct' ];?></td> </tr> <?php } ?> </table> <?php } ?> </body> </html> |