百度统计统计第三方网站的浏览量和访问量

news2024/11/17 19:40:07

百度统计简介

百度统计——领先的中文网站分析平台

百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使用体验,不断提升网站的投资回报率。 百度统计提供了几十种图形化报告,全程跟踪访客的行为路径。同时,百度统计集成百度推广数据,帮助用户及时了解百度推广效果并优化推广方案。 基于百度强大的技术实力,百度统计提供了丰富的数据指标,系统稳定,功能强大但操作简易。登陆系统后按照系统说明完成代码添加,百度统计便可马上收集数据,为用户提高投资回报率提供决策依据。

在这里插入图片描述

在这里插入图片描述

如上所示,百度统计平台可以统计出浏览量pv,访客数uv,ip数等等。可以统计出大多数用户需要的信息。

同时也可以借助百度统计统计自己的网站数据,这样就无需开发纪录网站信息的功能。

百度统计使用入门

在这里插入图片描述

百度统计的的主要分为三种,如下

在这里插入图片描述
一般的pc端站长版足够使用了,注册一个百度账户,登录进入主页,如下

在这里插入图片描述
这里已经绑定了一个站点,新注册的应该是空白。更多功能移步官方文档使用入门

新建上线站点

新建站点

在这里插入图片描述
填写完域名信息就绑定完成了。

这样绑定并不能完成网站数据的统计,还需要安装代码,再开发的网站中添加百度统计的代码:

在这里插入图片描述

如何手动安装代码

也就是说,在网站上线前需要将百度统计的代码添加上去,再上线网页。

在这里插入图片描述

使用设置代码管理按步骤进行

在这里插入图片描述
当出现安装成功即可。

仅仅在百度统计官网上查看这些信息显然不能满足要求,百度统计提供给api用于获取这些统计信息。

查看百度统计api手册:

https://tongji.baidu.com/api/manual/

在这里插入图片描述
选择对应账户下的接口即可。百度账号接口说明

获取api key

在这里插入图片描述

配置网站需要有域名且已经上服务器了,在公网能访问到。

如下是配置成功且安装百度统计代码后的api。

在这里插入图片描述

点击Tongji API调试工具

在这里插入图片描述

Api接口调试

  1. 进入调试界面,最好先查看Tongji API用户手册查看如何使用这些api接口。

在这里插入图片描述
2. 填写账号和token,注意这里的token不是密码,是上一步的数据api。百度商业账号或百度账号都可以

在这里插入图片描述

  1. 选择需要的数据类型

在这里插入图片描述
一般统计网站的访问量,浏览量等信息都是获取报告数据,更多请移步官方文档Tongji API用户手册

  1. 选择趋势分析,获取满足条件的数据
    在这里插入图片描述

网站的浏览量和访问量在趋势分析下。

  1. 填写请求参数

在这里插入图片描述
选择完所有参数后点击提交生成如图所示的请求参数

在这里插入图片描述
响应如下

在这里插入图片描述
响应也和请求一样也是headerbody的json数据。

完整的数据如下

{
	"header": {
		"desc": "success",
		"failures": [],
		"oprs": 1,
		"succ": 1,
		"oprtime": 0,
		"quota": 1,
		"rquota": 200000000,
		"status": 0,
		"traceid": "e33e957b64bd11ee9b7c1d928feab7e1"
	},
	"body": {
		"data": [
			{
				"result": {
					"total": 62,
					"offset": 0,
					"pageSum": [
						[
							"2023/08/01 - 2023/10/01",
							362,
							44
						],
						[
							"2023/08/10 - 2023/10/07",
							104,
							34
						],
						[
							"变化率",
							248.08,
							29.41
						]
					],
					"timeSpan": [
						"2023/08/01 - 2023/10/01",
						"2023/08/10 - 2023/10/07"
					],
					"sum": [
						[
							2418,
							316
						],
						[
							944,
							145
						]
					],
					"fields": [
						"simple_date_title",
						"time",
						"pv_count",
						"visitor_count"
					],
					"items": [
						[
							[
								"2023/10/01与2023/10/07"
							],
							[
								"2023/09/30与2023/10/06"
							],
							[
								"2023/09/29与2023/10/05"
							],
							[
								"2023/09/28与2023/10/04"
							],
							[
								"2023/09/27与2023/10/03"
							],
							[
								"2023/09/26与2023/10/02"
							],
							[
								"2023/09/25与2023/10/01"
							],
							[
								"2023/09/24与2023/09/30"
							],
							[
								"2023/09/23与2023/09/29"
							],
							[
								"2023/09/22与2023/09/28"
							],
							[
								"2023/09/21与2023/09/27"
							],
							[
								"2023/09/20与2023/09/26"
							],
							[
								"2023/09/19与2023/09/25"
							],
							[
								"2023/09/18与2023/09/24"
							],
							[
								"2023/09/17与2023/09/23"
							],
							[
								"2023/09/16与2023/09/22"
							],
							[
								"2023/09/15与2023/09/21"
							],
							[
								"2023/09/14与2023/09/20"
							],
							[
								"2023/09/13与2023/09/19"
							],
							[
								"2023/09/12与2023/09/18"
							]
						],
						[
							[
								"2023/10/01",
								"--",
								"--"
							],
							[
								"2023/09/30",
								"--",
								"--"
							],
							[
								"2023/09/29",
								"--",
								"--"
							],
							[
								"2023/09/28",
								6,
								6
							],
							[
								"2023/09/27",
								4,
								2
							],
							[
								"2023/09/26",
								8,
								6
							],
							[
								"2023/09/25",
								4,
								3
							],
							[
								"2023/09/24",
								2,
								1
							],
							[
								"2023/09/23",
								"--",
								"--"
							],
							[
								"2023/09/22",
								8,
								5
							],
							[
								"2023/09/21",
								4,
								3
							],
							[
								"2023/09/20",
								57,
								2
							],
							[
								"2023/09/19",
								2,
								1
							],
							[
								"2023/09/18",
								2,
								2
							],
							[
								"2023/09/17",
								"--",
								"--"
							],
							[
								"2023/09/16",
								"--",
								"--"
							],
							[
								"2023/09/15",
								85,
								7
							],
							[
								"2023/09/14",
								64,
								4
							],
							[
								"2023/09/13",
								116,
								2
							],
							[
								"2023/09/12",
								"--",
								"--"
							]
						],
						[
							[
								"2023/10/07",
								7,
								3
							],
							[
								"2023/10/06",
								"--",
								"--"
							],
							[
								"2023/10/05",
								"--",
								"--"
							],
							[
								"2023/10/04",
								"--",
								"--"
							],
							[
								"2023/10/03",
								"--",
								"--"
							],
							[
								"2023/10/02",
								"--",
								"--"
							],
							[
								"2023/10/01",
								"--",
								"--"
							],
							[
								"2023/09/30",
								"--",
								"--"
							],
							[
								"2023/09/29",
								"--",
								"--"
							],
							[
								"2023/09/28",
								6,
								6
							],
							[
								"2023/09/27",
								4,
								2
							],
							[
								"2023/09/26",
								8,
								6
							],
							[
								"2023/09/25",
								4,
								3
							],
							[
								"2023/09/24",
								2,
								1
							],
							[
								"2023/09/23",
								"--",
								"--"
							],
							[
								"2023/09/22",
								8,
								5
							],
							[
								"2023/09/21",
								4,
								3
							],
							[
								"2023/09/20",
								57,
								2
							],
							[
								"2023/09/19",
								2,
								1
							],
							[
								"2023/09/18",
								2,
								2
							]
						],
						[
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								33.33,
								-16.67
							],
							[
								"变化率",
								0,
								50
							],
							[
								"变化率",
								612.5,
								-66.67
							],
							[
								"变化率",
								-50,
								-66.67
							],
							[
								"变化率",
								0,
								100
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								"--",
								"--"
							],
							[
								"变化率",
								2025,
								133.33
							],
							[
								"变化率",
								12.28,
								100
							],
							[
								"变化率",
								5700,
								100
							],
							[
								"变化率",
								"--",
								"--"
							]
						]
					]
				}
			}
		],
		"expand": {}
	}
} 

GO语言实现

  1. 拼接请求体数据

百度统计的请求参数都是放在请求体中的,包括headerbody,如下:

postData := make(map[string]interface{})
header := make(map[string]interface{})
body := make(map[string]interface{})

header["userName"] = "username"
//header["password"] = "password"
header["accessToken"] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
header["account_type"] = 1
body["site_id"] = "siteId"
body["start_date"] = "20230801"
body["end_date"] = "20231001"
body["metrics"] = "pv_count,visitor_count"
body["method"] = "trend/time/a"
//body["gran"] = gran
//body["area"] = ""

postData["header"] = header
postData["body"] = body
  1. 序列化数据
bytesData, err := json.Marshal(postData)
  1. 发送请求
// io操作
reader := bytes.NewReader(bytesData)
// 百度统计api
url := "https://api.baidu.com/json/tongji/v1/ReportService/getData"
request, err := http.NewRequest("POST", url, reader)
// 设置请求体格式是json必须是json
request.Header.Set("Content-Type", "application/json;charset=UTF-8")
// 发送http请求
client := http.Client{}
resp, err := client.Do(request)
if err != nil {
	fmt.Printf("连接百度统计request错误:%s", err)
}
// 读取请求体数据
respBytes, err := ioutil.ReadAll(resp.Body)
  1. 解析响应数据
// 打印json字符串
fmt.Printf("%v", string(respBytes))
// 根据json字符串构建结构体赋值
// 该部分省略,由于选择的请求参数不同返回的json字符串不同

在这里插入图片描述

构造返回值结构体,观察百度统计的api测试机,数据在bodydata中,如下:

在这里插入图片描述

data中有两个主要的结构,resultexpand,一次类推按照这种结构,构造结构体,如下:

type BaiduHeaderFailureReturn struct {
	Code     int    `json:"code"`
	Message  string `json:"message"`
	Position string `json:"position"`
	Content  string `json:"content"`
}

type BaiduReturn struct {
	Header BaiduHeaderReturn   `json:"header"`
	Body   BaiduBodyDataReturn `json:"body"`
}

type BaiduHeaderReturn struct {
	Desc     string                     `json:"desc"`
	Failures []BaiduHeaderFailureReturn `json:"failures"`
	Oprs     int                        `json:"oprs"`
	Succ     int                        `json:"succ"`
	Oprtime  int                        `json:"oprtime"`
	Quota    int                        `json:"quota"`
	Rquota   int                        `json:"rquota"`
	Status   int                        `json:"status"`
}

type BaiduBodyDataReturn struct {
	Data []BaiduBodyResultReturn `json:"data"`
}

type BaiduBodyResultReturn struct {
	Result BaiduBodyResultSumReturn `json:"result"`
}
type BaiduBodyResultSumReturn struct {
	Total   int               `json:"total"`
	Sum     [][]int           `json:"sum"`
	Items   [][][]interface{} `json:"items"`
	PageSum [][]interface{}   `json:"pageSum"`
}

带入赋值即可。

完整代码如下:

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	postData := make(map[string]interface{})
	header := make(map[string]interface{})
	body := make(map[string]interface{})

	header["userName"] = "xxxx"
	//header["password"] = "xxxx"
	header["accessToken"] = "xxxxxx"
	header["account_type"] = 1
	body["site_id"] = "xxxxx"
	body["start_date"] = "20230801"
	body["end_date"] = "20231001"
	body["metrics"] = "pv_count,visitor_count"
	body["method"] = "trend/time/a"
	//body["gran"] = gran
	//body["area"] = ""

	postData["header"] = header
	postData["body"] = body

	//fmt.Printf("%v", postData)

	bytesData, err := json.Marshal(postData)
	if err != nil {
		fmt.Printf("序列化百度统计参数错误:%s", err)
	}

	//fmt.Printf("%v", bytesData)

	reader := bytes.NewReader(bytesData)
	url := "https://api.baidu.com/json/tongji/v1/ReportService/getData"
	request, err := http.NewRequest("POST", url, reader)
	if err != nil {
		fmt.Printf("创建百度统计request错误:%s", err)
	}
	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
	client := http.Client{}
	resp, err := client.Do(request)
	if err != nil {
		fmt.Printf("连接百度统计request错误:%s", err)
	}

	respBytes, err := ioutil.ReadAll(resp.Body)

	if err != nil {
		fmt.Printf("读取百度统计request结果错误:%s", err)
	}

	fmt.Printf("%v", string(respBytes))
	// 构造返回参数结构体
	ret := &BaiduReturn{}
	json.Unmarshal(respBytes, &ret)
	if ret.Header.Desc != "success" {
		fmt.Printf("读取百度统计request返回值显示错误:%s", ret.Header.Failures[0].Message)
		return
	}

	fmt.Printf("%+v\n", ret.Body)
}


type BaiduHeaderFailureReturn struct {
	Code     int    `json:"code"`
	Message  string `json:"message"`
	Position string `json:"position"`
	Content  string `json:"content"`
}

type BaiduReturn struct {
	Header BaiduHeaderReturn   `json:"header"`
	Body   BaiduBodyDataReturn `json:"body"`
}

type BaiduHeaderReturn struct {
	Desc     string                     `json:"desc"`
	Failures []BaiduHeaderFailureReturn `json:"failures"`
	Oprs     int                        `json:"oprs"`
	Succ     int                        `json:"succ"`
	Oprtime  int                        `json:"oprtime"`
	Quota    int                        `json:"quota"`
	Rquota   int                        `json:"rquota"`
	Status   int                        `json:"status"`
}

type BaiduBodyDataReturn struct {
	Data []BaiduBodyResultReturn `json:"data"`
}

type BaiduBodyResultReturn struct {
	Result BaiduBodyResultSumReturn `json:"result"`
}
type BaiduBodyResultSumReturn struct {
	Total   int               `json:"total"`
	Sum     [][]int           `json:"sum"`
	Items   [][][]interface{} `json:"items"`
	PageSum [][]interface{}   `json:"pageSum"`
}


在这里插入图片描述

这里根据实际需求构造返回值结构体即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1066652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单调栈】下一个更大元素 I

文章目录 Tag题目来源题目解读解题思路方法一:暴力枚举方法二:单调栈哈希表 知识回顾单调栈 写在最后 Tag 【单调栈哈希表】【数组】 题目来源 496. 下一个更大元素 I 题目解读 找出 nums1 中数字 x 在 nums2 中的位置,并找出在 nums2 中比…

【SpringBoot】文件分片上传、合并

背景 在上传大型文件时,一般采用的都是分片、断点续传等技术,这样不会导致因文件过大而造成系统超时或者过压等情况。 接下来我们进入教学 如果有帮助到您,麻烦请点击个收藏、赞,谢谢~ 一、实际效果图 整个前端网页的效果图&…

商城小程序代客下单程序开发演示

一款专为传统电商、实体商家开发的商城系统小程序,做私域、做留存、做社交必备功能全都有。 1、丰富的营销玩法:拼团、秒杀、定金预售、分销、社区团购、积分商城、支付有礼等主流获客玩法都有。 2、强大的会员体系:普通会员、付费会员、会…

spring 事务源码阅读

开启事务 使用EnableTransactionManagement注解开启事务 该注解会引入TransactionManagementConfigurationSelector类,然后该类导入两个类AutoProxyRegistrar和ProxyTransactionManagementConfiguration。 1、添加bean后置处理器 AutoProxyRegistrar类的作用是注…

883. 高斯消元解线性方程组

883. 高斯消元解线性方程组 - AcWing题库 输入一个包含 n 个方程 n 个未知数的线性方程组。 方程组中的系数为实数。 求解这个方程组。 下图为一个包含 m 个方程 n 个未知数的线性方程组示例: 输入格式 第一行包含整数 n。 接下来 n 行,每行包含 n1…

千万不要支付赎金!解密.halo勒索病毒的秘诀在这里

导言: .halo 勒索病毒等勒索病毒已经成为网络犯罪分子的利器,威胁着很多企业的数据安全。本文91数据恢复将为您介绍 .halo 勒索病毒的新面貌,以及一些创新的方法,如何保护和恢复被 .halo 勒索病毒加密的数据文件,并提供…

【计算机视觉|人脸建模】学习从图像中回归3D面部形状和表情而无需3D监督

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Learning to Regress 3D Face Shape and Expression from an Image without 3D Supervision 链接:[1905.06817] Learning to Regress 3D Face Shape and Expression from an I…

6-10 单链表分段逆转 分数 15

void K_Reverse( List L, int K ) { //此题已经默认size > K 因为当size < K时 反转后将不再符合链表的定义//求出表中元素个数int size 0;for (List cur L->Next; cur ! NULL; cur cur->Next)size; List prv, cur, next, first, head L;//共需要反转 si…

功率放大器可以放大电压吗为什么

功率放大器是一种电子设备&#xff0c;用于将输入信号的功率放大到更高的水平。而电压是功率的一个组成部分&#xff0c;所以功率放大器可以放大电压。 在功率放大器中&#xff0c;输入信号经过放大器的放大阶段后&#xff0c;会得到一个更强的输出信号。这个放大过程是通过增加…

HTML5开发实例-3D全景(ThreeJs全景Demo) 详解(图)

前言 在现在市面上很多全景H5的环境下,要实现全景的方式有很多,可以用css3直接构建也可以用基于threeJs的库来实现,还有很多别的制作全景的软件使用 本教学适用于未开发过3D全景的工程狮 如果觉得内容太无聊可以直接跳到最后 下载代码 理论 整个3D全景所用的相关理论就…

CSS布局 | flex布局

flex布局 flex是CSS3中新增的布局手段&#xff0c;优势是适用于不同屏幕尺寸和设备&#xff0c;当布局涉及到不定宽度&#xff0c;分布对⻬的场景时&#xff0c;我们可以优先考虑弹性盒布局。 任何一个容器都可以指定为Flex布局&#xff0c;容器设为 Flex 布局以后&#xff0…

电驱2035目标及新材料研究应用进展-2023

今天同大家一起了解DOE电驱2035目标&#xff08;成本、功率密度、电压、峰值功率&#xff09;&#xff0c;及当前研发项目中关于电驱电机的新材料研究进展与应用。 2030-2035电驱系统目标 峰值功率和功率密度按每5年50%的速度提升&#xff0c;电压平台800V&#xff0c;增加峰值…

数据被加密?.locked1勒索病毒的简单解决方法

引言&#xff1a; 在数字化的今天&#xff0c;数据宛如生命的一部分&#xff0c;而 .locked1 勒索病毒这种威胁正在如影随形地威胁着我们的数字宝库。本文将为您生动地介绍 .locked1 勒索病毒&#xff0c;以及如何摆脱它的束缚&#xff0c;解锁被其加密的数据&#xff0c;同时提…

Unity Golang项目教程-创建项目

安装Unity Unity的安装比较简单。这里我不做详细介绍&#xff0c;提供一些安装教程链接&#xff0c;如果还有困难下面我提供联系方式可以私信我。 安装教程参考 创建工程如下图所示&#xff1a; 等待项目创建完成即可。 如有问题可以Q联系我&#xff0c; 873149745

CCF中国开源大会专访 | 刘旭东:着眼“开源联合”,实现“聚力共赢”

受访嘉宾 | 刘旭东 记者 | 朱珂欣 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 2023 CCF 中国开源大会&#xff08; CCF ChinaOSC &#xff09;拟于 2023 年 10 月 21 日至 22 日在湖南省长沙市北辰国际会议中心召开。 作为第二届 CCF 中国开源大会&a…

计算CPK及规范限合格率,并绘制概率密度曲线

CPK&#xff08;过程能力指数&#xff09;是一个用于衡量一个过程的稳定性和一致性的统计指标&#xff0c;特别用于制造业和质量管理中。它衡量了一个过程的变异性与规范界限的关系&#xff0c;帮助确定过程是否能够产生合格的产品或服务。 正态分布假设&#xff1a;CPK的计算…

Kfka监控工具--Kafka-eagle安装

1、开启Kafka JMX端口 JMX 是一个为应用程序植入管理功能的框架 在启动Kafka脚本之前&#xff0c;添加&#xff1a; export JMX_PORT9988 nohup bin/kafka-server-start.sh comfig/server.properties 2、安装jdk配置好JAVA_HOME 3、将kafka_eagle 上传并解压 tar -zxvf …

想做扫码看图效果,你需要学会这一招

现在扫描二维码来查看图片是常见的一种方式&#xff0c;比如资料图片、个人照片、pdf图片、表情包等等都可以通过扫码的方式来展现。而且生成图片二维码的方法也非常的简单&#xff0c;只需要使用二维码在线生成器&#xff0c;就可以使用浏览器来快速完成制作&#xff0c;对于还…

VS2022+qt5.15.2+cmake3.23.2配置VTK9.1.0版本

VS2022qt5.15.2cmake3.23.2VTK9.1.0 尝试了好多次&#xff0c;终于成了~ 软件安装 先把需要的软件都安装好&#xff01; VS2022安装教程: https://blog.csdn.net/qq_44005305/article/details/132295064 qt5.15.2安装教程&#xff1a;https://blog.csdn.net/Qi_1337/article…

python—如何提取word中指定内容

假设有一个Word&#xff0c;该Word中存在 “联系人” 关键字&#xff0c;如何将该Word中的联系人所对应的内容提取出来呢&#xff1f; 该Word内容如下所示&#xff1a; 要在给定的Word文档中提取出与"联系人"关键字对应的内容&#xff0c;可以使用Python的py…