2025年9月4日星期四

B站自动抽奖任务脚本

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/PfsP97若失效,可用地址

1.购买服务器

阿里云:

服务器购买地址

https://t.aliyun.com/U/PfsP97

若失效,可用地址

https://www.aliyun.com/activity/wuying/dj?source=5176.29345612&userCode=49hts92d

腾讯云:

https://curl.qcloud.com/wJpWmSfU

若失效,可用地址

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console

华为云

https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

function reload() {    setTimeout(function () {        alert('关注+转发+评论+点赞完成');        location.reload(true);    }, 2000);}
function getCsrf() {    const cookieName = 'bili_jct';
    const cookieArray = document.cookie.split(';');    for (const cookie of cookieArray) {        const [name, value] = cookie.trim().split('=');        if (name === cookieName) {            return value;        }    }    return null;}
function randomComment() {    const comments = [        "这个活动好有趣,一定要参加!",        "真心期待能中奖,哈哈哈。",        "加油加油,希望好运能降临到我身上。",        "有缘一定能中奖,大家一起努力!",        "这次抽奖福利不错,大家一起来试试手气。",        "看到这个抽奖活动,马上就被吸引了,转发支持!",        "转发支持一下,希望能中个大奖。",        "感谢主办方提供这么好的机会,一定要参与一下。",        "这个活动看起来不错,快来一起参加吧!",        "希望能中奖,给生活增添一些惊喜。",        "为了梦想,冲鸭,转发转发!",        "好运马上到,抽中大奖就在眼前!",        "这次中奖的概率一定很高,一定要试试!",        "转发一下,祝愿大家都有好运。",        "每次抽奖都充满期待,这次也不例外。",        "中奖了就发财了,加油加油!",        "谢谢主办方,希望能中到喜欢的奖品。",        "期待这次能有好运,中个大奖回家。",        "转发送福利,中奖了请吃糖!",        "这个活动真是太棒了,一定要参与一下。",    ];
    const randomIndex = Math.floor(Math.random() * comments.length);    return comments[randomIndex];}
function followV1(uid, flag) {    const act = flag ? 1 : 2;    const data = `fid=${uid}&act=${act}&re_src=11&gaia_source=web_main&spmid=333.999.0.0&extend_content=%7B%22entity%22%3A%22user%22%2C%22entity_id%22%3A${uid}%2C%22fp%22%3A%220%5Cu00011920%2C%2C1080%5Cu0001Win32%5Cu000112%5Cu00018%5Cu000124%5Cu00011%5Cu0001zh-CN%5Cu00010%5Cu00010%2C%2C0%2C%2C0%5Cu0001Mozilla%2F5.0%2B(Windows%2BNT%2B10.0%3B%2BWin64%3B%2Bx64)%2BAppleWebKit%2F537.36%2B(KHTML%2C%2Blike%2BGecko)%2BChrome%2F119.0.0.0%2BSafari%2F537.36%2BEdg%2F119.0.0.0%22%7D&csrf=${getCsrf()}`;    GM.xmlHttpRequest({        method"POST",        url"https://api.bilibili.com/x/relation/modify",        data: data,        headers: {            "Content-Type""application/x-www-form-urlencoded"        },        onloadfunction ({responseText}) {            console.log("关注结果:" + responseText);        },    });}
function dynamicLike(dynamic_id, flag) {    const up = flag ? 1 : 2;    const data = `dynamic_id=${dynamic_id}&up=${up}&csrf=${getCsrf()}`;    GM.xmlHttpRequest({        method"POST",        url"https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb",        data: data,        headers: {            "Content-Type""application/x-www-form-urlencoded"        },        onloadfunction ({responseText}) {            console.log("点赞结果:" + responseText);        },    })}
function comment(oid, type, message) {    const data = `oid=${oid}&type=11&message=${encodeURIComponent(message)}&plat=1&at_name_to_mid=%7B%7D`    GM.xmlHttpRequest({        method"POST",        url`https://api.bilibili.com/x/v2/reply/add?csrf=${getCsrf()}`,        data: data,        headers: {            "Content-Type""application/x-www-form-urlencoded"        },        onloadfunction ({responseText}) {            console.log("评论结果:" + responseText);        },    })}
function reply(dynamic_id, message) {    const data = JSON.stringify({        "dyn_req": {            "content": {                "contents": [                    {                        "raw_text": message,                        "type"1//纯文本1                        "biz_id"""                    }                ]            },            "scene"4// 纯文本1, 带图2            "attach_card"null,            "upload_id"`${unsafeWindow.UserStatus.userInfo.mid}_${Math.floor(Date.now() / 1000)}_${Math.floor(Math.random() * 9000) + 1000}`,            "meta": {"app_meta": {"from""create.dynamic.web""mobi_app""web"}}        },        "web_repost_src": {"dyn_id_str"`${dynamic_id}`}    });
    GM_xmlhttpRequest({        method"POST",        url`https://api.bilibili.com/x/dynamic/feed/create/dyn?csrf=${getCsrf()}`,        headers: {            "content-type""application/json",        },        data: data,        onloadfunction ({responseText}) {            console.log("转发结果:" + responseText);        },    });}
jQuery($ => {    'use strict';
    const dynamic_id = location.href.match(/www\.bilibili\.com\/opus\/([^\/?]+)/)[1];    if (dynamic_id) {        const $btn = $('<div class="side-toolbar__btn">关转评赞</div>');        $btn.on('click'function () {            const basic = unsafeWindow.__INITIAL_STATE__.detail.basic;            const uid = basic.uid;            const oid = basic.comment_id_str;            const type = basic.comment_type;
            let message = $('.reply-box-warp textarea.reply-box-textarea').val();            if (!message) {                message = randomComment();            }
            followV1(uid, true);            dynamicLike(dynamic_id, true);            comment(oid, type, message);            reply(dynamic_id, message)            reload();        });        $(".side-toolbar__btn:eq(0)").after($btn);    }
    $('.bili-dyn-card-reserve__action button.uncheck').click();});

解析

该脚本为Bilibili 自动抽奖脚本,主要作用包括:

  • 在动态页 https://www.bilibili.com/opus/* 注入一个按钮【关转评赞】。

  • 键完成关注作者点赞该动态评论转发四连操作;操作完成后弹窗提示并强制刷新页面。

  • 若未在评论框手输内容,会随机生成一条预置评论文案再提交。

关键方法与职责

  • reload()

    • 2 秒后弹出"完成"提示并刷新页面,用于收尾与状态刷新。

  • getCsrf()

    • 从 Cookie 中读取 bili_jct 值,作为所有写操作接口需要的 CSRF token。

  • randomComment()

    • 从内置评论语料数组随机返回一条评论文本,供自动评论/转发使用。

  • followV1(uid, flag)

    • 调用 https://api.bilibili.com/x/relation/modify(POST)实现关注/取关

    • flag=true 为关注(act=1),false 为取关(act=2)。

    • 通过 application/x-www-form-urlencoded 传参并带上 csrf

  • dynamicLike(dynamic_id, flag)

    • 调用 https://api.vc.bilibili.com/dynamic_like/v1/dynamic_like/thumb(POST)实现点赞/取消点赞

    • flag=true 为点赞(up=1),false 为取消(up=2)。

  • comment(oid, type, message)

    • 调用 https://api.bilibili.com/x/v2/reply/add(POST)对目标动态进行评论

    • 这里固定 type=11(对应动态评论),oid 为评论对象 ID,message 为评论内容,附带 csrf

  • reply(dynamic_id, message)

    • 调用 https://api.bilibili.com/x/dynamic/feed/create/dyn(POST,JSON)实现转发动态(纯文本)。

    • 组装动态发布 payload(含 dyn_req.content.contents 等字段、web_repost_src),并带 csrf

  • jQuery($ => { ... })(脚本主流程)

    • 点击后依次执行:followV1(uid, true) → dynamicLike(dynamic_id, true) → comment(oid, type, message) → reply(dynamic_id, message) → reload()

    • 评论 message 优先取页面评论框内容,若为空则用 randomComment()

    • uid(作者 UID)、oid(评论对象 ID)、type(评论类型)。

    • 根据当前 URL 解析 dynamic_id,从页面全局 unsafeWindow.__INITIAL_STATE__.detail.basic 读取:

    • 在右侧工具栏插入一个按钮【关转评赞】:

    • 还尝试点击 .bili-dyn-card-reserve__action button.uncheck(看起来用于自动预约/打勾,具体依界面而定)。

元信息与依赖

  • 匹配页面http*://www.bilibili.com/opus/*

  • 权限unsafeWindowGM.xmlHttpRequest/GM_xmlhttpRequest

  • 依赖:jQuery 2.2.4 与 GM4 polyfill

  • 执行时机document-end



注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

嘉信国际注册开户攻略|嘉信证券注册流程 I W-8BEN表格填写更新+Wise绑卡教程 内地CRS无忧

之前给大家分享过免疫CRS铁拳 盈透证券IBKR开户全攻略|附港卡入金教程,但是近期盈透US提升了开户门槛,需 之前给大家分享过 免疫CRS铁拳 盈透证券IBKR开户全攻略|附港卡入金教程 , 但是近期盈透US提升了开户门槛,需要海外存量证明,相当于对内地用户关上了大门。 那...