python模拟登陆抖音_抖音模拟登陆的实现
抖音爬虫-登陆参数加密
登陆参数加密
错误码
登陆成功的效果
主逻辑代码,工具方法未贴出
登陆参数加密
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模拟登陆抖音_抖音模拟登陆的实现相关推荐
- python爬虫抖音音浪_爬虫抖音_抖音淘宝联盟入驻条件
如果你刚开始操作抖音,运营抖音还不懂平台的操作技巧,可以加我的微信:422591055 带你玩转抖音自媒体平台,我还联合了抖音运营的几位大佬,每日分享免费的抖音运营的实操讲解,还可以免费获取到抖音运营 ...
- python如何写生日快乐说说_抖音上很火的生日句子,适合过生日发的高逼格
抖音上很火的生日时发的句子,还有给自己生日的高逼格祝福,码起来,迟早会用到. 抖音上很火的生日句子,适合过生日发的高逼格祝福: 1. 没有零点的生日祝福 没有煽情的语录 感恩所有 都是馈赠和成长 祝自 ...
- python爬虫反爬策略_抖音字体反爬,爬虫字体反爬策略——每周一个爬虫小教程系列...
在B站上看到一个关于抖音字体反爬的视频,看完之后,精神抖擞,不禁感觉,我又行了,于是在模拟器上下载了一个抖音,打开了我尘封已久的抖音号. 可以看见显示的数字是正常的,但是查看源码就是错误的. 既然是字 ...
- python爬快手个人介绍_抖音爬腻了,安卓爬腻了?python爬取快手ios端首页热门视频!...
最近快手这种小视频app,特别的火,中午吃过午饭,闲来无聊,想搞下快手的短视频,看能不能搞到. 于是乎, 打开了fiddler,开始准备抓包,学习Python中有不明白推荐加入交流群 号:864573 ...
- python调音_调音和分贝
虽然pydub没有直接停止audioSegment播放的方法,但根据this documentation的说法,它将音频分成半秒钟的块,以便于键盘中断.在 因此,如果我们获取音频并在一个try-exc ...
- python模拟登录密码加密_有关爬虫模拟登陆时,处理用户名密码加密问题的方法...
之前爬一家网站的数据,需要登陆之后才能进行:所以当时使用selenium偷鸡了一波: 现在我想尝试用requests方法,结果在登录时,就遇到了用户名密码加密问题 查了下登陆有关的js,找到了加密的方 ...
- java 模拟登陆web系统_关于java模拟登陆WEB的问题。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...
- python手机自动点击_通过电脑,模拟点击手机屏幕 /手机自动点击,刷金币?
1.手机用数据线连接电脑 2.利用ADB工具配置好路径,然后电脑和手机安装好360手机管家或者其他的可以连接手机的软件(可以安装手机驱动). 3.打开手机usb调试(下面是手机和电脑连接后,电脑端显示 ...
- python实现模拟浏览器登录入口_登录采集——模拟浏览器登录QQ邮箱
网络爬虫学习中,简单的静态页面数据,难以满足我们的一颗"好学"之心,且现在我们"好奇"的数据往往藏得很深,要么需要登录,要么为动态加载--今天,就来分享一下模拟 ...
最新文章
- 多用户使用一台计算机可设置,《计算机应用基础》试卷(A)
- EHPC通过断点续算和自动伸缩在抢占式实例上实现低成本HPC计算
- 瑞斯康达nms_瑞斯康达iTN产品资料
- 如何使一维数组一行一行的输出成二维数组的格式
- JAVA学习--集合的遍历
- mysql 恢复空密码_mysql 找回密码
- 基于SSM框架的高校实验室管理系统PPT模板
- 条件GAN论文简单解读
- 程序控制流——Python基础语法
- java课程设计文档_Java课程设计-文档相似性检查系统(完整)测试版
- Beini奶瓶U盘PE完整教程[2018-11-28]
- 索尼电视测试软件,索尼智能电视检测漏光、坏点等现象的简单小教程
- Python调用百度API实现人脸融合
- 竹间智能:人机交互未来如何改变人类生活
- 大数据、云计算和物联网三者的关系
- 用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#6.2 WebSocket通信
- 2022下半年软考考试时间安排已确定!
- mp4文件播放不了怎么办?
- 景联文科技:关于语音标注,你知道多少?
- 【人工智能】作业1: Bait游戏 实验报告