linux查看网站的在线人数,树莓派显示博客网站实时在线人数

用树莓派做了一个博客网站实时访问显示器,用三个LED的不同状态来显示网站实时访客的人数,同时还在终端中显示网站当前在线人数、网页今日浏览量、数据库大小和页面平均生成时间。以下是教程。

开发语言使用的是python,数据通过科技爱好者网站统计提供的API实现。先看下成品图。

02b42609c6ba48110a2bdd35d03a4cd3.png树莓派网站计数器

007a61a6bda4208df682eb1060f55278.png显示当前在线人数、网页今日浏览量、数据库大小和页面平均生成时间

下面是实现方法:

我使用自建的网站访问统计软件Matomo统计博客的访问人数,其提供了API供二次开发。

26498651b246a467e4af009f94fbd9f8.pngMatomo提供的API

所以我在树莓派上用python获得网站当前在线人数、网页今日浏览量、数据库大小和页面平均生成时间,然后展现出来,并连接了三个LED灯。连接灯可以参考这篇文章:树莓派GPIO控制RGB彩色LED灯。

连接好led灯后,在树莓派上编写代码。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import requests

import time

import RPi.GPIO as GPIO

R,Y,G = 14,15,18

visits = 0

GPIO.setmode(GPIO.BCM)

GPIO.setup(R, GPIO.OUT)

GPIO.setup(Y, GPIO.OUT)

GPIO.setup(G, GPIO.OUT)

def printSiteInfo ():

actions_url = 'https://tongji.lxx1.com/index.php?module=API&method=Actions.get&idSite=3&period=day&date=today&format=JSON&token_auth=***'

db_status_url = 'https://tongji.lxx1.com/index.php?module=API&method=DBStats.getGeneralInformation&format=JSON&token_auth=***'

live_visits_url = 'https://tongji.lxx1.com/index.php?module=API&method=Live.getCounters&idSite=3&lastMinutes=3&format=json&token_auth=***'

r = requests.get(actions_url)

database_response = requests.get(db_status_url)

live_visits = requests.get(live_visits_url)

info = r.json()

database_list = database_response.json()

database = database_list[2] / 1024 / 1024

visits_json = live_visits.json()

visits_list = visits_json[0]

global visits

visits = visits_list['visits']

localtime = time.asctime( time.localtime(time.time()) )

print ""

print "当前时间 :", localtime

print 'live visits: ' , visits

print 'pageviews: ', info['nb_pageviews']

print 'avg_time_generation :',info['avg_time_generation'] , 's'

print 'database size: ' , database ,' M'

return

i = 1

while i == 1:

t = 0

printSiteInfo()

visits = int(visits)

if visits == 0 :

GPIO.output(R,0)

GPIO.output(Y,0)

GPIO.output(G,0)

elif visits == 1 :

GPIO.output(R,1)

GPIO.output(Y,0)

GPIO.output(G,0)

elif visits == 2:

GPIO.output(R,1)

GPIO.output(Y,1)

GPIO.output(G,0)

elif visits == 3:

GPIO.output(R,1)

GPIO.output(Y,1)

GPIO.output(G,1)

time.sleep(20)

else :

while t < visits :

GPIO.output(R,0)

GPIO.output(Y,0)

GPIO.output(G,0)

time.sleep(0.7)

GPIO.output(R,1)

GPIO.output(Y,1)

GPIO.output(G,1)

time.sleep(0.3)

t = t + 1

time.sleep(10)

这里要注意⚠️:python获得网站实时在线人数 visits 的变量类型为 Unicode ,在 if 语句进行比较前,要将其转换为 int 型,否则会出错。

这样网站访客显示器就完成啦。

126838a1672f3b7b1acdd3064688d662.png博客访问计数器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值