获取某音直播间商品列表并封装成API

前言

获取某音直播间商品必须登录,我们提前准备好某音web端的用户cookie,拿到cookie中的sessionid就能直接调用API了

封装

我们将API集成在MoreAPI中,这样使用的时候就能直接调用了
MoreAPI官方文档:https://apifox.com/apidoc/shared-0b55c993-4634-4f70-b6fc-3edf1c27344d
MoreAPI官网: https://www.wouldmissyou.com/

做好分析之后我们将传入两个请求参数,share_text作为移动端直播间的分享链接,sessionid作为web端cookie中的sessionid字段值。请求视图如下:

class LiveGoodsView(HTTPMethodView):
    """
    直播商品
    """
    async def post(self, request) -> HTTPResponse:
        share_text = request.json.get("share_text")
        sessionid = request.json.get("sessionid")
        return await live_goods(locals())

用户使用参数进行请求后,就可以直接返回live_goods方法中的内容

# live_goods.py

async def live_goods(data):
    share_text = data.get("share_text")
    sessionid = data.get("sessionid")
    if not share_text:
        return json_fail_response(CodeDict.params_fail)
    if not sessionid:
        return json_fail_response(CodeDict.params_fail, message="请传入登录后的cookie -> sessionid字段")

    room_id = await get_id(share_text)
    live_data_url = f"https://webcast.amemv.com/webcast/room/reflow/info/?live_id=1&room_id={room_id}&version_code=99.99.99&app_id=1128"
    u_headers = {
        "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
    }
    try:
        live_data_response = await proxy_request_get(url=live_data_url, headers=u_headers)
        live_data_response = live_data_response.json()
        author_id = live_data_response['data']['room']['owner_user_id']
        web_rid = live_data_response['data']['room']['owner']['web_rid']
    except:
        return json_fail_response(CodeDict.request_fail)
    url_path = f"device_platform=webapp&aid=6383&channel=channel_pc_web&room_id={str(room_id)}&author_id={str(author_id)}&offset=0&limit=20&pc_client_type=1&version_code=210800&version_name=21.8.0&cookie_enabled=true&screen_width=1920&screen_height=1080&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Edge&browser_version=122.0.0.0&browser_online=true&engine_name=Blink&engine_version=122.0.0.0&os_name=Mac+OS&os_version=10.15.7&cpu_core_num=6&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=50"
    x_b = XBogus()
    x_params = x_b.getXBogus(url_path)[0]
    re_url = "https://live.douyin.com/live/promotions/page/?" + x_params
    ref = f'https://live.douyin.com/{str(web_rid)}'
    cookie = f"sessionid={sessionid};ttwid={str(await generate_ttwid())}"
    l_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',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
        'Referer': ref,
        'Cookie': cookie
    }
    try:
        response_data = await proxy_request_get(url=re_url, headers=l_headers)
        response_data = response_data.json()
    except:
        return json_fail_response(CodeDict.request_fail)

    return json_success_response(response_data)

支持API接口就写好了

调用

调用我们写好API,查看效果
在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘刘刘刘露

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值