抖音爬虫-登陆参数加密

登陆参数加密

错误码

登陆成功的效果

主逻辑代码,工具方法未贴出

登陆参数加密

Python实现对应的异或操作:

def encpyptwithXor(param):

return [i ^ 0x5 for i in param.encode()]

然后return的时候调用了一个方法

点进去查看源码如下,即进行一些转换,最后进行一次类似于python切片的逻辑:

a为常量:

接下来用python实现:

def byte_to_str(alist,bolean,length ) -> list:

res = [0 for _ in range(length * 2)]

bo = False

i = 0

while i < length:

b = alist[i + bolean] & 0xFF

bo1 = bo + True

res[bo] = s[b >> 4]

bo = bo1 + True

res[bo1] = s[b & 0xF]

i += 1

return res

此为抓包显示的加密参数,原始参数为19920120000:

运行测试效果:

发现有些不一致,但后面结果一样,自然而然想到了+86(即国际区号)

测试一下:

OK,剩下的搞定剩余参数即可。

错误码

error

message

1101

没有输入验证码

1102

验证码错误

1009

账号或密码错误

0

账号密码错误,未注册也时显示该错误码

1039

请使用手机验证码登陆(使用新设备会提示此错误码)

登陆成功的效果

准备写一个web服务,现在首要任务是在网上收集一些device_id和iid,怕我自己的被封。。

主逻辑代码,工具方法未贴出

# -*- coding: utf-8 -*-

# @Time : 2019/6/27 18:06

# @Author : Conderfly

# @Email : coderflying@163.com

# @File : login.py

import re

import base64

import requests

from server.utils.generate_check_url import generate_url

from server.utils.yundama import indetify

from server.utils.constants import s,headers

def encpyptwithXor(param):

return [i ^ 0x5 for i in param.encode()]

def byte_to_str(alist,bolean,length ) -> list:

res = [0 for _ in range(length * 2)]

bo = False

i = 0

while i < length:

b = alist[i + bolean] & 0xFF

bo1 = bo + True

res[bo] = s[b >> 4]

bo = bo1 + True

res[bo1] = s[b & 0xF]

i += 1

return res

def get_login_params(param):

xor = encpyptwithXor(param=param)

return "".join(byte_to_str(xor, False, len(xor)))

def douyin_login_params(mobile,password,captcha=""):

mobile = "+86" +mobile

mobile, password = get_login_params(mobile), get_login_params(password)

login_params = {

"mobile": mobile,

"password":password,

}

url = generate_url("https://lf.snssdk.com/user/mobile/login/v2/?mix_mode=1",extract=login_params)

url = re.sub(r'&mobile[\s\S]*?&as',"&as",url)

form_data = {

"mobile": mobile,

"password": password,

"mix_mode": 1,

"retry": "no_retry",

}

if captcha:

form_data["captcha"] = captcha

return url, form_data

def login(mobile,password):

message,captcha = "error",""

while message != "success":

url, form_data = douyin_login_params(mobile,password,captcha)

response = requests.post(url,data=form_data,headers=headers,verify=False)

response_json = response.json()

data, message = response_json.get("data"), response_json.get("message")

if message == "error":

error_code = data.get("error_code")

if error_code in [1101,1102]:

# 验证码问题

image_content = base64.b64decode(data.get("captcha").encode())

captcha = indetify(image_content)

elif error_code == 1009:

# 密码错误

return {"code":0,"message":"账号或密码错误。"}

else:

print(error_code)

else:

return {"code":1,"cookie":response.cookies.get_dict(),"message":response_json}

if __name__ == '__main__':

res = login("199****2945", "********")

print(res)

print("input:+86199****2945")

print("result:",get_login_params("199****2945"))

python模拟登陆抖音_抖音模拟登陆的实现相关推荐

  1. python爬虫抖音音浪_爬虫抖音_抖音淘宝联盟入驻条件

    如果你刚开始操作抖音,运营抖音还不懂平台的操作技巧,可以加我的微信:422591055 带你玩转抖音自媒体平台,我还联合了抖音运营的几位大佬,每日分享免费的抖音运营的实操讲解,还可以免费获取到抖音运营 ...

  2. python如何写生日快乐说说_抖音上很火的生日句子,适合过生日发的高逼格

    抖音上很火的生日时发的句子,还有给自己生日的高逼格祝福,码起来,迟早会用到. 抖音上很火的生日句子,适合过生日发的高逼格祝福: 1. 没有零点的生日祝福 没有煽情的语录 感恩所有 都是馈赠和成长 祝自 ...

  3. python爬虫反爬策略_抖音字体反爬,爬虫字体反爬策略——每周一个爬虫小教程系列...

    在B站上看到一个关于抖音字体反爬的视频,看完之后,精神抖擞,不禁感觉,我又行了,于是在模拟器上下载了一个抖音,打开了我尘封已久的抖音号. 可以看见显示的数字是正常的,但是查看源码就是错误的. 既然是字 ...

  4. python爬快手个人介绍_抖音爬腻了,安卓爬腻了?python爬取快手ios端首页热门视频!...

    最近快手这种小视频app,特别的火,中午吃过午饭,闲来无聊,想搞下快手的短视频,看能不能搞到. 于是乎, 打开了fiddler,开始准备抓包,学习Python中有不明白推荐加入交流群 号:864573 ...

  5. python调音_调音和分贝

    虽然pydub没有直接停止audioSegment播放的方法,但根据this documentation的说法,它将音频分成半秒钟的块,以便于键盘中断.在 因此,如果我们获取音频并在一个try-exc ...

  6. python模拟登录密码加密_有关爬虫模拟登陆时,处理用户名密码加密问题的方法...

    之前爬一家网站的数据,需要登陆之后才能进行:所以当时使用selenium偷鸡了一波: 现在我想尝试用requests方法,结果在登录时,就遇到了用户名密码加密问题 查了下登陆有关的js,找到了加密的方 ...

  7. java 模拟登陆web系统_关于java模拟登陆WEB的问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...

  8. python手机自动点击_通过电脑,模拟点击手机屏幕 /手机自动点击,刷金币?

    1.手机用数据线连接电脑 2.利用ADB工具配置好路径,然后电脑和手机安装好360手机管家或者其他的可以连接手机的软件(可以安装手机驱动). 3.打开手机usb调试(下面是手机和电脑连接后,电脑端显示 ...

  9. python实现模拟浏览器登录入口_登录采集——模拟浏览器登录QQ邮箱

    网络爬虫学习中,简单的静态页面数据,难以满足我们的一颗"好学"之心,且现在我们"好奇"的数据往往藏得很深,要么需要登录,要么为动态加载--今天,就来分享一下模拟 ...

最新文章

  1. 多用户使用一台计算机可设置,《计算机应用基础》试卷(A)
  2. EHPC通过断点续算和自动伸缩在抢占式实例上实现低成本HPC计算
  3. 瑞斯康达nms_瑞斯康达iTN产品资料
  4. 如何使一维数组一行一行的输出成二维数组的格式
  5. JAVA学习--集合的遍历
  6. mysql 恢复空密码_mysql 找回密码
  7. 基于SSM框架的高校实验室管理系统PPT模板
  8. 条件GAN论文简单解读
  9. 程序控制流——Python基础语法
  10. java课程设计文档_Java课程设计-文档相似性检查系统(完整)测试版
  11. Beini奶瓶U盘PE完整教程[2018-11-28]
  12. 索尼电视测试软件,索尼智能电视检测漏光、坏点等现象的简单小教程
  13. Python调用百度API实现人脸融合
  14. 竹间智能:人机交互未来如何改变人类生活
  15. 大数据、云计算和物联网三者的关系
  16. 用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#6.2 WebSocket通信
  17. 2022下半年软考考试时间安排已确定!
  18. mp4文件播放不了怎么办?
  19. 景联文科技:关于语音标注,你知道多少?
  20. 【人工智能】作业1: Bait游戏 实验报告

热门文章

  1. Word处理控件Aspose.Words功能演示:使用Java合并MS Word文档
  2. logback高级特性使用(一)
  3. 【数据库实验】实验四 基于嵌入SQL的综合应用编程(基于QSqlTableModel实现)
  4. 阿里实习生电话面试总结
  5. Android Studio 星座查询系统
  6. Naruto图片下载
  7. 《全基因组测序WGS数据分析——1.DNA测序技术》学习笔记
  8. STM32 HAL库BH1750光强检测器驱动代码
  9. table数据刷新;v-if刷新el-table表格
  10. 软件开发时,比较好的辅助软件推荐