Closed ShiinaRinne closed 1 year ago
你漏了一个最重要的headers参数哦,referer要修改成https://www.douyin.com/user/self 详情看我发布的接口文档 https://langyue.cc/APIdocV1.0.html 里面列出了大部分接口所需要的参数和headers,如果有误还请提交issues
添加上正确的referer就可以正常获取了
添加上正确的referer就可以正常获取了
请问TikTokLive的失效也是因为referer吗???
关注用户的api是https://www.douyin.com/aweme/v1/web/commit/follow/user/?,接口文档中似乎没有这个API的介绍。
我从关注请求里直接复制了url(包括XBogus),现在有正常返回信息了
不加referer的情况下会提示blocked,当referer是https://www.douyin.com/
时候也有正常的返回结果。反而是我自行更改XBogus参数之后才会什么都没有,我的问题应该是调用API生成XBogus参数时出错了
有些接口三个一个也不能少,另外xg如果出错页面是完全空白的 blocked的情况是xg过期了,但是现在抖音延长了xg的生命周期 也就是xg不再是用过就过期
有些接口三个一个也不能少,另外xg如果出错页面是完全空白的 blocked的情况是xg过期了,但是现在抖音延长了xg的生命周期 也就是xg不再是用过就过期
对,我现在的情况就是页面完全空白xd 我试试直接用原请求中的参数生成一个xg拼接起来
空白了.jpg 函数中的参数是直接从原本请求中剔除api和xg参数部分,全复制进去的
cookie需要 sessionid_ss;msToken;odin_tt; referer需要对应 user-agent浏览器默认 就可以请求成功了
你得再多测试几个参数
import Util
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'referer':'https://www.douyin.com/user/MS4wLjABAAAAFYFDSTF8VBtSOaVAl1ex8VorboYs0neWnYScMa9CdTM',
'Cookie': '',
"Content-Type": "application/x-www-form-urlencoded"
}
url = "https://www.douyin.com/aweme/v1/web/commit/follow/user/?device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=en&browser_platform=Win32&browser_name=Edge&browser_version=110.0.1587.41&browser_online=true&engine_name=Blink&engine_version=110.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=0&webid=7198928548617733666&msToken=ddgW0IBqBMWOoFEIz8Cp6pwd65E5NrTmnZXu95YSYY1Y6BlRSFRRqf9pcwxPhUKzvUnOnz1xqvj7FPOB00g-7wkPYIY-LA347vCNujfZSkEAb00W9M9jz-geLOcgKoXB&X-Bogus=DFSzswVuMhg8s40zShjdSENSwbuY"
payload = {'type': '1', 'user_id': '62706123686'}
datas = Util.XBogus('device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=en&browser_platform=Win32&browser_name=Edge&browser_version=110.0.1587.41&browser_online=true&engine_name=Blink&engine_version=110.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=0&webid=7198928548617733666&msToken=ddgW0IBqBMWOoFEIz8Cp6pwd65E5NrTmnZXu95YSYY1Y6BlRSFRRqf9pcwxPhUKzvUnOnz1xqvj7FPOB00g-7wkPYIY-LA347vCNujfZSkEAb00W9M9jz-geLOcgKoXB' )
api_follow_url = f'https://www.douyin.com/aweme/v1/web/commit/follow/user/?{datas.params}'
r = Util.requests.post(url=api_follow_url, headers=headers, data=payload)
print(r.text)
print(r.status_code)
确实是不行,是因为api差异吗?我使用的这个是关注用户的动作的api,不是获取用户的关注列表
不是因为api差异,是你headers的问题
cookie: xxxxx referrer: https://www.douyin.com/ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41 x-secsdk-csrf-token: xxxxx
cookie: xxxxx referrer: https://www.douyin.com/ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41 x-secsdk-csrf-token: xxxxx
大佬大佬,顺便求问一下那个TikTokLive的bug也是因为headers吗
cookie: xxxxx referrer: https://www.douyin.com/ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41 x-secsdk-csrf-token: xxxxx
大佬大佬,顺便求问一下那个TikTokLive的bug也是因为headers吗
不是😂 单纯是没把live的接口加xg 因为之前还能用 侥幸心理 没想到后面也挂了
加上xg就能用了
不忍打破
你应该是漏了msToken,生成xg也要带上的
mstoken在cookie、原本链接和请求xg的方法里也都有 (毕竟是直接从网络请求里复制过来的) 虽然cookie中有两个,还的和请求中的不一样... postman确实可以正常使用
是这段代码里Util.XBogus
中的参数有限制吗,出问题应该就只是在这里了
import Util headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36', 'referer':'https://www.douyin.com/user/MS4wLjABAAAAFYFDSTF8VBtSOaVAl1ex8VorboYs0neWnYScMa9CdTM', 'Cookie': '', "Content-Type": "application/x-www-form-urlencoded" } url = "https://www.douyin.com/aweme/v1/web/commit/follow/user/?device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=en&browser_platform=Win32&browser_name=Edge&browser_version=110.0.1587.41&browser_online=true&engine_name=Blink&engine_version=110.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=0&webid=7198928548617733666&msToken=ddgW0IBqBMWOoFEIz8Cp6pwd65E5NrTmnZXu95YSYY1Y6BlRSFRRqf9pcwxPhUKzvUnOnz1xqvj7FPOB00g-7wkPYIY-LA347vCNujfZSkEAb00W9M9jz-geLOcgKoXB&X-Bogus=DFSzswVuMhg8s40zShjdSENSwbuY" payload = {'type': '1', 'user_id': '62706123686'} datas = Util.XBogus('device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=en&browser_platform=Win32&browser_name=Edge&browser_version=110.0.1587.41&browser_online=true&engine_name=Blink&engine_version=110.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=0&webid=7198928548617733666&msToken=ddgW0IBqBMWOoFEIz8Cp6pwd65E5NrTmnZXu95YSYY1Y6BlRSFRRqf9pcwxPhUKzvUnOnz1xqvj7FPOB00g-7wkPYIY-LA347vCNujfZSkEAb00W9M9jz-geLOcgKoXB' ) api_follow_url = f'https://www.douyin.com/aweme/v1/web/commit/follow/user/?{datas.params}' r = Util.requests.post(url=api_follow_url, headers=headers, data=payload) print(r.text) print(r.status_code)
删掉X-Bogus就可以了,就是说 有点离谱在的
import Util
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'referer': 'https://www.douyin.com/',
'Cookie': '#你的cookie',
"Content-Type": "application/x-www-form-urlencoded"
}
url = "https://www.douyin.com/aweme/v1/web/commit/follow/user/?device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=2560&screen_height=1440&browser_language=en&browser_platform=Win32&browser_name=Edge&browser_version=110.0.1587.41&browser_online=true&engine_name=Blink&engine_version=110.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=0&webid=7198928548617733666&msToken=ddgW0IBqBMWOoFEIz8Cp6pwd65E5NrTmnZXu95YSYY1Y6BlRSFRRqf9pcwxPhUKzvUnOnz1xqvj7FPOB00g-7wkPYIY-LA347vCNujfZSkEAb00W9M9jz-geLOcgKoXB"
payload='type=1&user_id=62706123686'
r = Util.requests.post(url=url, headers=headers, data=payload)
print(r.text)
print(r.status_code)
删掉X-Bogus就可以了,就是说 有点离谱在的
计算带上也可以,就是你的headers和payload格式不对
删掉X-Bogus就可以了,就是说 有点离谱在的
计算带上也可以,就是你的headers和payload格式不对
之前做爬虫时候还没遇见过这种payload的格式,见到的基本点开payload页都只有一个request payload,抖音是第一次见
今天真的麻烦大佬了,非常感谢!!!
删掉X-Bogus就可以了,就是说 有点离谱在的
计算带上也可以,就是你的headers和payload格式不对
之前做爬虫时候还没遇见过这种payload的格式,见到的基本点开payload页都只有一个request payload,抖音是第一次见
这个是因为post方法 其次是因为Content-Type=application/x-www-form-urlencoded,所以才是这样编码
今天真的麻烦大佬了,非常感谢!!!
共勉之
/x-www-form-urlencoded
受教了,中途我其实看到urlencoded这种形式之后需要用urllib中的parse.urlencode
转一次,只是之前那个参数和headers问题,来回试过发现没变化,加上还没接触过这种请求不太确定真实性~就又删掉了~
可能是个与repo并没有关系的issue...恳请赐教
描述出现的错误 https://www.douyin.com/aweme/v1/web/commit/follow/user/? 对此接口发送请求,返回值为200,但是没有任何返回信息(
response.text
)bug复现 复现这次行为的步骤:
使用
Util.XBogus
调用这段参数生成XBogus,来源于关注和取消关注的接口。其中msToken直接复制和随机生成都尝试过。修改
headers
,添加Cookie
,Content-Type
等,cookie从请求中直接复制拼接参数发起请求,下面是最终请求的url
会得到一个没有返回信息的结果。学艺不精,不清楚是生成XBogus时提供的参数有误,还是其他问题导致
网页端的请求在payload页被分为查询字符串参数和表单数据,表单数据拼接到url中或用json形式发送也都尝试过
截图
一个关注动作似乎被分到了三个api,第一个疑似是获取
impr_id
,第二个和第三个通过在params中的impr_id
与to_user_id
完成关注桌面(请填写以下信息): -操作系统:windows10 64bit -vpn代理:关闭 -版本:latest
附文 在此处添加有关此问题的文字。