Code Monkey home page Code Monkey logo

dyapitest's Introduction

dyapitest

说一下抓包问题

方案一:

缺点:会闪退,经常闪退~所以就有了方案二

  • 下载最新版抖音app
  • 下载后先不急着安装,进入aweme_douyinweb.apk\lib\arm64-v8a\下删除libsscronet.so
  • 再安装,正常启动抓包即可

方案二:

  • 下载libsscronet.so,下载到模拟器的安装目录下
  • 准备好25.9 64位的抖音apk安装包
  • 把抖音安装包安装到模拟器中,模拟器配置好抓包
  • 进入模拟器安装目录下:shift+单机右键点击在此处打开Powershell窗口,执行下面命令
adb push libsscronet.so /sdcard
adb shell
su
cd /sdcard
mv libsscronet.so /data/data/com.ss.android.ugc.aweme/lib
cd /data/data/com.ss.android.ugc.aweme/lib
find libsscronet.so

2023.03.28

测试web获取用户作品信息

  • 此接口今天升级了,安全性提高了
  • 简单分析了下说下我的结论和解决方式
    • 旧版路径/aweme/v1/web/aweme/post/,只允许登录过的用户访问
    • 新版路径/aweme/v1/web/locate/post/,只允许知晓对方任意一个作品id的情况下访问,关键参数为:locate_item_id(对方任意一个作品id)
    • 直接读取网页./user/MS4wLjABAAAAlZNPHQhQMZ-06qmnETc-ifP3b72dCoZSBRoGVHdPQdw,只允许读取一页
  • 有了以上结论就大概知道如何解决了
  • 我的场景是抖音摸鱼小插件,主要是随机取一位自己添加在随机池内的播主的近期随机一个作品并播放
  • 所以我直接使用scrapy读网页即可拿到的数据

2023.03.29

  • 这个数据太乱太长了建议不要取整段,用正则精简下<script id="RENDER_DATA" type="application/json">(.*?)%22post%22%3A%7B%22(.*?)%2C%22_location
  • 这样之后返回的内容要拼接一下,拼接头:{"post":{"
  • 相关源码
  • 推荐一个好用的json解析网站,可以快速定位json错误位置Jsonlint

2023.04.05

测试视频信息列表

接口说明

  • GET:重定向至随机一个视频的源地址
  • POST:返回视频所有信息
参数名 参数类型 参数描述 参数示例
video_list int: list 视频ID列表 [7206592982118616324,7180333041812819237,7212918206074309899]

请求示例

http://api2.52jan.com/video_info?video_list=[7206592982118616324,7180333041812819237,7212918206074309899]

失败示例

{"msg": "此接口已失效"}

2023.04.15

抖音网页版没有WebDriver检测

  • 没有检测可能导致的后果:使用playwrightselenium用户登录、爬取数据、发布视频、点赞、发表评论等操作。

2023.04.23

分析无水印解析

  • 此处分为2步
    1. 把视频的key取出来,字段为uri
    2. 拼接地址,此处又分高清和普通版本
  • 如何找到清晰度最高的地址呢
    1. 通过dataSize这个字段,数值越大视频越清晰
      • 最清晰的一般是在video.play_addr_lowbrvideo.play_addr_h264里面
      • 文件最小的是在video.play_addr_265
      • 带水印的在video.download_addr,总之包含download的路径都是带水印的
    2. 保存数值最大的字段下的file_id的值,然后拼接url
  • 拼接示例
    1. 高清地址(81.4 MB):https://api-play-hl.amemv.com/aweme/v1/play/?video_id=v0200fg10000cgdcksjc77ucureni2j0&file_id=157e3967e85a461db2383bbee2d13889
    2. 普通地址(25.7 MB):https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000cgdcksjc77ucureni2j0&file_id=426954cc72d7448dbaaddfa4663d495c

2023.05.08

测试web用户粉丝接口

  • 使用playwright执行一段js代码即可,如下所示
  • 你所需要掌握的知识
    • 如何使用playwright执行js代码
    • 如何让playwright带cookie访问网页
function queryData(url) {
     var p = new Promise(function(resolve,reject) {
         var e={
                 "url":"https://www.douyin.com/aweme/v1/web/user/follower/list/?device_platform=webapp&aid=6383&channel=channel_pc_web&user_id=&sec_user_id=%s&offset=0&min_time=0&max_time=0&count=20&source_type=3&gps_access=0&address_book_access=0&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=112.0.0.0&browser_online=true&engine_name=Blink&engine_version=112.0.0.0&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=100",
                 "method":"GET"
               };
          var h = new XMLHttpRequest;
          h.open(e.method, e.url, true);
          h.setRequestHeader("accept","application/json, text/plain, */*");
          h.onreadystatechange =function() {
               if(h.readyState === 4 && h.status === 200) {
                    resolve(h.responseText);
               } else {}
          };
          h.send(null);
          });
          return p;
      }
  var p1 = queryData();
  res = Promise.all([p1]).then(function(result){
          return result
  })
  return res

dyapitest's People

Contributors

superheroff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

dyapitest's Issues

Go版

package main

import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
"time"
)

func main() {
// 仅供学习,如有侵权,联系删除............
res, err := videoInfo([]string{"视频ID"})
fmt.Println(res, err)
}

func videoInfo(videoIds []string) (string, error) {
data := url.Values{}
data.Set("aweme_ids", fmt.Sprintf("[%s]", strings.Join(videoIds, ",")))
data.Set("origin_type", "goods_rank_list_0")
data.Set("push_params", "")
data.Set("request_source", "0")

urll := fmt.Sprintf(`https://api3-normal-c-hl.amemv.com/aweme/v1/multi/aweme/detail/?os_api=22&device_type=MI+9&ssmix=a&manifest_version_code=120701&dpi=240&uuid=262213994129345&app_name=aweme&version_name=12.7.0&ts=%d&cpu_support64=false&storage_type=0&app_type=normal&appTheme=dark&ac=wifi&host_abi=armeabi-v7a&update_version_code=12709900&channel=tengxun_new&_rticket=%d&device_platform=android&iid=0&version_code=120700&mac_address=10:2a:b3:52:8c:70&cdid=fda4c8ff-171e-4959-8154-5454fec79a87&openudid=af452f2f28b2d1f9&device_id=0&resolution=720*1280&os_version=5.1.1&language=zh&device_brand=Android&aid=1128&mcc_mnc=46007`, time.Now().Unix(), time.Now().UnixNano()/1e6)
resp, err := http.PostForm(urll, data)
if err != nil {
	return "", err
}
defer resp.Body.Close()
content, err := ioutil.ReadAll(resp.Body)
if err != nil {
	return "", err
}
return string(content), nil

}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.