小工具      在线工具  汉语词典  css  js  c++  java

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

Go,golang,http 额外说明

收录于:152天前

百度统计简介

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

百度统计是百度推出的免费专业网站流量分析工具。它可以告诉用户访问者如何找到和浏览用户的网站,以及他们在网站上做了什么。有了这些信息,它可以帮助用户提高访问者在用户网站上的表现。网站的用户体验不断提高网站的投资回报率。百度统计提供数十种图形报表,全程跟踪访问者的行为路径。同时,百度统计整合百度推广数据,帮助用户及时了解百度推广效果,优化推广方案。基于百度强大的技术实力,百度统计提供了丰富的数据指标。系统稳定、功能强大且易于操作。登录系统并按照系统指示完成代码添加后,百度统计可以立即收集数据,为用户提供提高投资回报率的决策依据。

在这里插入图片描述

在这里插入图片描述

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

同时,您还可以使用百度统计来统计自己的网站数据,因此无需开发记录网站信息的功能。

百度统计入门

在这里插入图片描述

百度统计主要分为三种类型,如下:

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

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

新建上线站点

创建一个新网站

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

这种绑定无法完成网站数据的统计。您还需要安装代码。然后在开发的网站中添加百度统计代码:

在这里插入图片描述

如何手动安装代码

也就是说,在网站上线之前,需要添加百度统计的代码,然后才能上线网页。

在这里插入图片描述

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

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

单纯在百度统计官网查看这些信息显然不能满足要求。百度统计提供了获取这些统计信息的API。

查看百度统计API手册:

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

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

获取 API 密钥

在这里插入图片描述

配置网站需要有域名并且在服务器上,并且可以在公网访问。

以下是配置和安装百度统计代码成功后的API。

在这里插入图片描述

点击Tongji API调试工具

在这里插入图片描述

Api接口调试

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

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

在这里插入图片描述

  1. 选择所需的数据类型

在这里插入图片描述
一般统计网站的访问量,浏览量等信息都是获取报告数据,更多请移步官方文档同济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"`
}


在这里插入图片描述

这里可以根据实际需要构造返回值结构。

. . .

相关推荐

额外说明

MYSQL 1071 - 指定的键太长;

[SQL] Query bak start [ERR] 1071 - Specified key was too long; max key length is 767 bytes   主键字段过长。 1.在mysql 5.5.3之前,mysql的Inn

额外说明

3dsmax2021软件安装教程

3dsMax是一个专业的3D计算机图形程序,用于制作3D动画,模型,游戏和图像。它具有丰富的建模功能和灵活的插件架构,经常被视频游戏开发者,电视电影工作室和建筑可视化工作室使用。 目录 一、下载地址 二、安装步骤  一、下载地址 下载地址:https:/

额外说明

【Python教程入门】第30章 列表sort()方法

本篇我们介绍如何使用列表的 sort() 方法对元素进行排序。 列表 sort() 方法 如果想要对列表中的元素进行排序,可以使用 sort() 方法: list.sort() sort() 方法执行的是原地(in place)排序,意味着它会改变列表

额外说明

【python入门到精通】python函数式编程与应用详解

- 作者 :“大数据小禅” - 粉丝福利 :加入小禅的大数据社群 - 欢迎小伙伴们 点赞-、收藏⭐、留言- 目录 python函数式编程 lambda表达式的用法及其使用场景 什么是匿名函数? ambda表达式的基本格式 lambda表达式的使用场景 P

额外说明

证明HashSet、HashMap线程不安全、如何变成线程安全

证明HashSet、HashMap线程不安全、如何变成线程安全 (1)证明HashSet线程不安全 public static void main(String[] args) { Set<String> set = new HashSet<>

额外说明

SO_REUSEADDR和SO_REUSEPORT异同,以及在不同操作系统的差异

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)http://xn--https-rfa//blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文

额外说明

MySQL数据库第十四课--------sql优化---------层层递进

作者前言 - ✨✨✨✨✨✨-------- ​- 作者介绍: -- - ------- - -作者id:老秦包你会, - 简单介绍:--------------- 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 --

额外说明

api-ms-win-core-comm-l1-1-0.dll文件找不到如何解决?

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-core-comm-l1-1-0.dll

额外说明

钟形曲线 matlab_打破钟形曲线:在同一个海洋中脱颖而出

钟形曲线 matlab As you know that we are attending 博客世博会 East in New York City. We had a pleasure of attending Tamsen McMahon’s (@ta

额外说明

iOS App Store评测指南官方中文版

App Store审核指南官方中文版

ads via 小工具