123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- package service
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "net/http"
- "strings"
- )
- type MoreapiService struct{}
- // 获取抖音作品数据
- type DouyinStatisticResponse struct {
- Code int `json:"code"`
- Data struct {
- AwemeDetail struct {
- Statistics struct {
- DiggCount int `json:"digg_count"` // 点赞数
- CommentCount int `json:"comment_count"` // 评论数
- CollectCount int `json:"collect_count"` // 收藏数
- ShareCount int `json:"share_count"` // 分享数
- } `json:"statistics"`
- } `json:"aweme_detail"`
- } `json:"data"`
- }
- // 获取抖音作品数据
- func (s MoreapiService) GetDouyinStatistic(shareText string) (likes, comments, collects, shares int, err error) {
- url := "http://120.46.92.62:6888/api/douyin/aweme_detail_v4"
- method := "POST"
- //awemeId = "7519726524871462153"
- //shareText = "6.99 M@j.cn 03/18 uSy:/ - 你怎么哭着脸 # 沈妙 # 永劫无间 # 街头狂欢 # 涂鸦少女 https://v.douyin.com/z4go6Y8l458/ 复制此链接,打开Dou音搜索,直接观看视频!"
- requestBody := struct {
- AwemeId string `json:"aweme_id"`
- ShareText string `json:"share_text"`
- Proxy string `json:"proxy"`
- }{
- AwemeId: "",
- ShareText: shareText,
- Proxy: "",
- }
- // 封装请求体
- jsonData, err := json.Marshal(requestBody)
- if err != nil {
- fmt.Println("JSON编码失败:", err)
- return 0, 0, 0, 0, err
- }
- payload := strings.NewReader(string(jsonData))
- client := &http.Client{}
- req, err := http.NewRequest(method, url, payload)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- req.Header.Add("Cookie", "")
- req.Header.Add("Content-Type", "application/json")
- res, err := client.Do(req)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- defer res.Body.Close()
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- //fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, err
- }
- fmt.Println(string(body))
- // 解析响应数据
- var response DouyinStatisticResponse
- err = json.Unmarshal(body, &response)
- if err != nil {
- fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, fmt.Errorf("解析JSON失败: %v", err)
- }
- statistics := response.Data.AwemeDetail.Statistics
- likes, comments, collects, shares = statistics.DiggCount, statistics.CommentCount, statistics.CollectCount, statistics.ShareCount
- // 打印结果
- fmt.Println("点赞数:", likes)
- fmt.Println("评论数:", comments)
- fmt.Println("收藏数:", collects)
- fmt.Println("分享数(可作为浏览量参考):", shares)
- return likes, comments, collects, shares, nil
- }
- // 获取快手作品数据
- type KuaishouStatisticResponse struct {
- Code int `json:"code"`
- Data struct {
- Photos []struct {
- CollectCount int `json:"collect_count"` // 收藏数
- CommentCount int `json:"comment_count"` // 评论数
- LikeCount int `json:"like_count"` // 点赞数
- ForwardCount int `json:"forward_count"`
- ViewCount int `json:"view_count"` // 浏览数
- ShareCount int `json:"share_count"` // 分享数
- } `json:"photos"`
- } `json:"data"`
- }
- // 获取快手作品数据
- func (s MoreapiService) GetKuaishouStatistic(shareText string) (likes, comments, collects, shares int, err error) {
- url := "http://120.46.92.62:6888/api/ks/aweme_detail"
- method := "POST"
- //photoId = "3xhsja9s5xfr3ts"
- //shareText = "https://www.kuaishou.com/f/X-16itgqSzQ64163"
- requestBody := struct {
- PhotoId string `json:"photo_id"`
- ShareText string `json:"share_text"`
- Proxy string `json:"proxy"`
- }{
- PhotoId: "",
- ShareText: shareText,
- Proxy: "",
- }
- // 封装请求体
- jsonData, err := json.Marshal(requestBody)
- if err != nil {
- fmt.Println("JSON编码失败:", err)
- return 0, 0, 0, 0, err
- }
- payload := strings.NewReader(string(jsonData))
- client := &http.Client{}
- req, err := http.NewRequest(method, url, payload)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- req.Header.Add("Cookie", "")
- req.Header.Add("Content-Type", "application/json")
- res, err := client.Do(req)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- defer res.Body.Close()
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- //fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, err
- }
- fmt.Println(string(body))
- // 解析响应数据
- var response KuaishouStatisticResponse
- err = json.Unmarshal(body, &response)
- if err != nil {
- fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, fmt.Errorf("解析JSON失败: %v", err)
- }
- photo := response.Data.Photos[0]
- likes, comments, collects, shares = photo.LikeCount, photo.CommentCount, photo.CollectCount, photo.ViewCount
- // 打印结果
- fmt.Println("点赞数:", likes)
- fmt.Println("评论数:", comments)
- fmt.Println("收藏数:", collects)
- fmt.Println("分享数(可作为浏览量参考):", shares)
- return likes, comments, collects, shares, nil
- }
- // 获取b站作品数据
- type BilibiliStatisticResponse struct {
- Code int `json:"code"`
- Data struct {
- VideoData struct {
- Stat struct {
- Like int `json:"like"` // 点赞数
- Reply int `json:"reply"` // 评论数
- Favorite int `json:"favorite"` // 收藏数
- Share int `json:"share"` // 分享数
- Coin int `json:"coin"` // 投币数
- View int `json:"view"` // 浏览数
- } `json:"stat"`
- } `json:"videoData"`
- } `json:"data"`
- }
- // 获取b站作品数据
- func (s MoreapiService) GetBilibiliStatistic(bvId string) (likes, comments, collects, shares int, err error) {
- url := "http://120.46.92.62:6888/api/bilibili/video_data"
- method := "POST"
- bvId = "BV1KUM2z1Ecu"
- requestBody := struct {
- BvId string `json:"bvid"`
- Proxy string `json:"proxy"`
- }{
- BvId: bvId,
- Proxy: "",
- }
- // 封装请求体
- jsonData, err := json.Marshal(requestBody)
- if err != nil {
- fmt.Println("JSON编码失败:", err)
- return 0, 0, 0, 0, err
- }
- payload := strings.NewReader(string(jsonData))
- client := &http.Client{}
- req, err := http.NewRequest(method, url, payload)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- req.Header.Add("Cookie", "")
- req.Header.Add("Content-Type", "application/json")
- res, err := client.Do(req)
- if err != nil {
- // fmt.Println(err)
- return 0, 0, 0, 0, err
- }
- defer res.Body.Close()
- body, err := ioutil.ReadAll(res.Body)
- if err != nil {
- //fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, err
- }
- fmt.Println(string(body))
- // 解析响应数据
- var response BilibiliStatisticResponse
- err = json.Unmarshal(body, &response)
- if err != nil {
- fmt.Println("解析互动数据失败:", err)
- return 0, 0, 0, 0, fmt.Errorf("解析JSON失败: %v", err)
- }
- stat := response.Data.VideoData.Stat
- likes, comments, collects, shares = stat.Like, stat.Reply, stat.Favorite, stat.View
- // 打印结果
- fmt.Println("点赞数:", likes)
- fmt.Println("评论数:", comments)
- fmt.Println("收藏数:", collects)
- fmt.Println("分享数(可作为浏览量参考):", shares)
- return likes, comments, collects, shares, nil
- }
|