为什么Python请求不能解析TiktokAPI数据?

2024-04-25 14:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用请求库向TikTok发出Python请求。我设法找到了他们用户详细信息的URL(我不知道这是否合法。如果不合法,请让我知道)。当我试图将其解析为json时,它会引发一个异常。有人能帮我分析/解决这个问题吗?代码如下: Python代码:

r1 = requests.get("https://www.tiktok.com/node/share/user/@nike?isUniqueId=true&verifyFp=verify_kb51zknj_GH98fcme_eDuR_4XzM_ATwp_s8TRdCzr8fwi&_signature=KBbp4AAgEBCtR.e4r-y0ZSgWqPAAHbR").json()
print(r1)

输出:

File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

谢谢


Tags: 代码inpyjsonvalueliblinelibrary
2条回答

您必须提供用户代理标头,即

headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}

r1 = requests.get("https://www.tiktok.com/node/share/user/@nike?isUniqueId=true&verifyFp=verify_kb51zknj_GH98fcme_eDuR_4XzM_ATwp_s8TRdCzr8fwi&_signature=KBbp4AAgEBCtR.e4r-y0ZSgWqPAAHbR", headers=headers).json()
print(r1)

抱歉,我试图将其作为注释发布,但未能格式化代码xD

我用Python编写了一个包装器,允许您获取用户、视频、hashtag、音乐视频等。 项目可以在这里找到-TikTokAPI-Python

对于获取用户的问题-

安装

pip install PyTikTokAPI

获取用户

from TikTokAPI import TikTokAPI
api = TikTokAPI()
user_obj = api.getUserByName("fcbarcelona")

相关问题 更多 >