2021-10-28_tiktok红人视频爬虫-程序员宅基地

技术标签: python  笔记  

Tiktok爬虫

github地址:https://github.com/carcabot/tiktok-signature.git,亲测有效

Installation

npm i tiktok-signature

Buy Me A Coffee

Usage

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s0WNkkl8-1635413604581)(examples/howto.gif)]

Generating signatures on high performance level

Build
docker build . -t tiktok-signature
Run
docker run -p 80:8080 -v $(pwd):/usr/app tiktok-signature

Example

Request signature
curl -X POST \
     -H "Content-type: application/json" \
     -d 'https://m.tiktok.com/share/item/list?secUid=&id=&type=5&count=30&minCursor=0&maxCursor=0&shareUid=' \
     http://localhost/signature

To generate signatures dynamically this repo comes with an integrated http server (listen.js) which accepts POST requests to http://localhost/signature with url in request body.

You have to start the server

npm start

Module

const Signer = require("tiktok-signature"); // Import package

const signer = new Signer(); // Create new signer
await signer.init(); // Create page with. Returns promise

const signature = await signer.sign("tiktok url"); // Get sign for your url. Returns promise
const navigator = await signer.navigator(); // Retrieve navigator data used when signature was generated

console.log(signature);
console.log(navigator);

await signer.close(); // Close browser. Returns promise

You can pass your desired User-Agent on class creation.

new Signer("Mozilla"); // Set User-Agent to Mozilla

CLI

Install dependencies

npm i playwright-chromium

Now you can generate the token using

node browser.js "https://m.tiktok.com/api/post/item_list/?aid=1988&count=30&secUid=MS4wLjABAAAAOUoQXeHglWcq4ca3MwlckxqAe-RIKQ1zlH9NkQkbLAT_h1_6SDc4zyPdAcVdTWZF&cursor=0"

The response token should look like this

{
    
  "status": "ok",
  "data": {
    
    "signature": "_02B4Z6wo00f01DBbvBwAAIBCcuSZt1Pua8AwS7iAAGyZ6e",
    "verify_fp": "verify_knvz9j2k_miXwiqOy_msam_42g2_BYoa_e4EAbuQnDwqI",
    "signed_url": "https://m.tiktok.com/api/post/item_list/?aid=1988&count=30&secUid=MS4wLjABAAAAOUoQXeHglWcq4ca3MwlckxqAe-RIKQ1zlH9NkQkbLAT_h1_6SDc4zyPdAcVdTWZF&cursor=0&verifyFp=verify_knvz9j2k_miXwiqOy_msam_42g2_BYoa_e4EAbuQnDwqI&_signature=_02B4Z6wo00f01DBbvBwAAIBCcuSZt1Pua8AwS7iAAGyZ6e",
    "x-tt-params": "1BLhm+0j/AG2Dlsz3v4u4w==",
    "navigator": {
    
      "width": 884,
      "height": 1244,
      "deviceScaleFactor": 3,
      "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.85 Safari/537.36",
      "browser_language": "en-US",
      "browser_platform": "MacIntel",
      "browser_name": "Mozilla",
      "browser_version": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.85 Safari/537.36"
    }
  }
}

Testing

You can test it using trending.py file included in this repo.

pip install Naked
python examples/trending.py

NOTE

It’s very important that the userAgent be the same when generate and when request for response.

Keeping a process too much time opened can increase memory usage, to avoid this uncomment the following lines in listen.js.

// setTimeout(function () {
    
//   server.close(() => {
    
//     console.log("Server shutdown completed.");
//     process.exit(1);
//   });
// }, 1 * 60 * 60 * 1000);

Buy Me A Coffee

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/carcabot/tiktok-signature.

  1. Fork it (https://github.com/carcabot/tiktok-signature/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some new feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

The lib is available as open source under the terms of the MIT License.

需要注意的地方
1.测centons系统启动安装playwright,缺少依赖,建议使用docker启动。
2.需要用境外代理,香港的代理不行,配置代理在index.js中修改,在这里插入图片描述3,docker启动.需要进入docker修改镜像
docker 启动后
docker ps #查看容器id
docker exec -it 容器id bash #进入容器
使用vim命令修改index.js文件,增加代理配置,提示没有vim命令,使用apt-get vim 安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45608952/article/details/121019407

智能推荐

Pytroch同一个优化器优化多个模型的参数并且保存优化后的参数_pytorch加载多个模型-程序员宅基地

文章浏览阅读4.5k次,点赞7次,收藏26次。在进行深度学习过程中会遇到几个模型进行串联,这几个模型需要使用同一个优化器,但每个模型的学习率或者动量等其他参数不一样这种情况。一种解决方法是新建一个模型将这几个模型进行串联,另一种解决方法便是往优化器里面传入这几个模型的参数。..._pytorch加载多个模型

计算机软考中级合格标准,中级软考多少分及格-程序员宅基地

文章浏览阅读1.4k次。原标题:中级软考多少分及格盛泰鼎盛 对于第一次报名软考的朋友,可能对于考试合格分数线不太了解,软考分为初、中、高三个级别,那么软考中级多少分及格呢?软考中级合格标准根据往年的软考合格分数线来看,各级别的合格标准基本上统一的。2019年上半年计算机技术与软件专业技术资格(水平)考试各级别各专业各科目合格标准均为45分(总分75分)。而2016下半年计算机技术与软件专业技术资格(水平)考试除了信息系统..._计算机程序设计员中级考试内容及合格标准

爬虫相关-程序员宅基地

文章浏览阅读50次。2019独角兽企业重金招聘Python工程师标准>>> ..._爬虫考虑安全法律因素

ASP.NET Identity 的“多重”身份验证-程序员宅基地

文章浏览阅读263次。本章主要内容有:  ● 实现基于微软账户的第三方身份验证  ● 实现双因子身份验证  ● 验证码机制实现基于微软账户的第三方身份验证  在微软提供的ASP.NET MVC模板代码中,默认添加了微软、Google、twitter以及Facebook的账户登录代码(虽然被注释了),另外针对国内的一些社交账户提供了相应的组件,所有组件都可以通过Nuget包管理器安装:    从..._identity 二次登录

2018年秋季学期课表-程序员宅基地

文章浏览阅读241次。李理论基础I、II课程编码:011D9101Z﹡ 课时:80 学分:4.00 课程属性:其它 主讲教师:聂思安 教学目的要求李群和李代数(Lie group and Lie algebra)是在1874年由挪威数学家SophusLie为研究微分方程的对称性而引进的。后经过E. Cartan 和H. Weyl等人的努力,李的理论已成了微分几何的重要研究工具并发展成完整的代数理论。上世纪..._层的上同调

iOS多线程-03-NSOperation与NSOperationQueue-程序员宅基地

文章浏览阅读33次。简介通过NSOperation与NSOperationQueue的组合也能实现多线程通常将任务封装成NSOperation对象,并将对象添加到NSOperationQueue中实现NSOperationNSOperation是一个抽象类,不能用来直接封装操作,通常使用它的子类来封装操作若不将NSOperation对象添加到NSOperationQueue中,操作只会在当前线程执...

随便推点

数据驱动的产品研发:如何利用数据驱动提高产品安全性-程序员宅基地

文章浏览阅读867次,点赞11次,收藏20次。1.背景介绍在当今的数字时代,数据已经成为企业和组织中最宝贵的资产之一。随着数据的增长和复杂性,数据驱动的决策变得越来越重要。数据驱动的产品研发是一种新兴的方法,它利用数据来优化产品的设计、开发和运营。这种方法可以帮助企业更有效地利用数据,提高产品的安全性和质量。在这篇文章中,我们将探讨数据驱动的产品研发的核心概念、算法原理、实例和未来发展趋势。我们将涉及到以下几个方面:背景介绍核...

基础类的DSP/BIOS API调用_clk_gethtime 返回值-程序员宅基地

文章浏览阅读1.3k次。转载自:http://blog.sina.com.cn/s/blog_48b82df90100bpfj.html基础类的DSP/BIOS API调用一、时钟管理CLK(1)Uns ncounts = CLK_countspms(void) 返回每毫秒的定时器高分辨率时钟的计数值(2)LgUns currtime = CLK_gethtime(void) _clk_gethtime 返回值

Appium环境搭建及“fn must be a function”问题解决-程序员宅基地

文章浏览阅读38次。由于appium在线安装比较困难,大多数应该是由于FQ造成的吧,索性直接下载appium安装包:http://pan.baidu.com/s/1bpfrvjDnodejs下载也很缓慢,现提供nodejs4.4.4下载地址:http://pan.baidu.com/s/1bIsS02环境搭建步骤可以参考:http://www.cnblogs.com/tobecrazy/p/4562199.h..._启动appium fn must be a function

基于单片机的语音存储与回放系统设计-程序员宅基地

文章浏览阅读1.3k次,点赞28次,收藏27次。在人类的历史长河中,语言的作用尤为重要,人们一直在思考一个问题,那就是如何把语言完全不差的记录下来。通过单片机控制语音芯片完成的语音存储与回访系统的电路比较大,而且回涉及到很多的模块电路,比如会涉及到单片机的最小系统、时钟电路、液晶显示模块等等,所以在焊接时要十分注意,涉及到多种模块的这种电路,哪怕只要存在一处的焊接错误,就会导致整个系统的检测无法完成,因为电路中交叉的线路非常多,所以在焊接过程中避免焊接错误和短路现象,如果电路连接错误,将给检测带来极大的不便,并且该电路具有更多的交叉线。_基于单片机的语音存储与回放系统设计

转载《一个射频工程师的职场日记》_射频工程师中年危机-程序员宅基地

文章浏览阅读3.7k次,点赞10次,收藏37次。本文转载自电子发烧友论坛http://bbs.elecfans.com/jishu_1674416_1_1.html转载此文章为了让更多刚毕业或者快要毕业的电子专业的同学,对于自己的未来工作学习能有些帮助,相信很多人快毕业的时候估计和我一样都不太清楚自己未来应该做些什么,读完这篇文章让我获益匪浅。以前大学毕业找工作的时候,就很希望有以前的同专业的师兄姐们写点面经什么的。但等到自己毕业了,从来就没有想过要把自己的求职经历和别人分享一下,给后来人做个参考。人人为我,我为人人。前人栽树后人乘凉。现在正准备跳_射频工程师中年危机

IntelliJ IDEA2020安装教程-程序员宅基地

文章浏览阅读6.8k次,点赞16次,收藏99次。IntelliJ IDEA2020安装教程[软件名称]:IntelliJ IDEA2020[软件语言]:中文 /英文[软件大小]:643.31MB[安装环境]:Win10/Win8/Win7[64位下载链接]:下载地址[提取码]:y3bu软件简介IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、_intellij idea2020安装

推荐文章

热门文章

相关标签