找回密码
  注册[Register]
查看: 410|回复: 5

[python] 哔哩哔哩 等级升级脚本

[复制链接]
发表于 2021-12-6 10:56 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

说明
用的哔哩接口写的,测试可用,填上cookie即可。可挂云函数自动升级。有能力的可自行研究扩充或修改。
代码
[Python] 纯文本查看 复制代码
# -*- coding: utf8 -*-
import requests
import json
import logging
import time
import importlib
import sys
importlib.reload(sys)

# 填写cookie即可运行
cookies = ""

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s  %(filename)s : %(levelname)s  %(message)s',
    datefmt='%Y-%m-%d %A %H:%M:%S',
    filename="log.txt",
    filemode='w')

console = logging.StreamHandler()  # 定义console handler
console.setLevel(logging.INFO)
formatter = logging.Formatter(
    '%(asctime)s  %(filename)s : %(levelname)s  %(message)s')
console.setFormatter(formatter)
# Create an instance
logging.getLogger().addHandler(console)

def extract_cookies(cookies):
    global csrf
    """从浏览器或者request headers中拿到cookie字符串,提取为字典格式的cookies"""
    cookies = dict([l.split("=", 1) for l in cookies.split("; ")])
    csrf = cookies['bili_jct']
    return cookies

# 银币数

def getCoin():
    cookie = extract_cookies(cookies)
    url = "http://account.bilibili.com/site/getCoin"
    r = requests.get(url, cookies=cookie).text
    j = json.loads(r)
    money = j['data']['money']
    return money

# 个人信息

def getInfo():
    global uid
    url = "http://api.bilibili.com/x/space/myinfo"
    cookie = extract_cookies(cookies)
    r = requests.get(url, cookies=cookie).text
    j = json.loads(r)
    uid = j['data']['mid']
    name = j['data']['name']
    level = j['data']['level']
    current_exp = j['data']['level_exp']['current_exp']
    next_exp = j['data']['level_exp']['next_exp']
    sub_exp = int(next_exp)-int(current_exp)
    days = int(int(sub_exp)/65)
    coin = getCoin()
    msg = "欢迎使用!!!用户: "+name + ",当前等级为 "+str(level) + " 级,当前经验为 " + \
        str(current_exp)+",距离升级还差"+str(sub_exp) + \
        " ,还需 "+str(days)+" 天升级!"+"银币数剩余 "+str(coin)
    logging.info(msg)

# 最新动态

def getActiveInfo():
    url = "https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=" + \
        str(uid)+"&type_list=268435455&from=weball&platform=web"
    cookie = extract_cookies(cookies)
    r = requests.get(url, cookies=cookie).text
    j = json.loads(r)
    return j

# 点赞 投币 5次

def Task():
    j = getActiveInfo()
    cards = j['data']['cards']
    count = 0
    for i in range(0, len(cards)):
        desc = cards[i]['desc']
        like = cards[count]['desc']['like']
        if "bvid" in desc:
            # 视频类型
            bvid = desc['bvid']
            aid = desc['rid_str']
            if like == 1:
                continue
            like_code = tolike(aid)
            coin_code = tocoin(bvid)
            toshare(aid)
            #coin_code = 0
            time.sleep(3)
            if like_code == 1 or coin_code == 1:
                count = count+1
            if count == 5:
                break
        logging.info('----------------------')

# 点赞函数

def tolike(aid):
    url = "https://api.bilibili.com/x/web-interface/archive/like"
    data = {
        'aid': aid,
        'like': 1,
        'csrf': csrf,
    }
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
    cookie = extract_cookies(cookies)
    r = requests.post(url, data=data, headers=headers,  cookies=cookie).text
    j = json.loads(r)
    code = j['code']
    if code == 0:
        logging.info(aid+' tolike succcessful !')
        return 1
    else:
        logging.info(aid+' tolike failed !')
        return 0

# 投币函数

def tocoin(bvid):
    coinNum = getCoin()
    if coinNum == 0:
        logging.info('not enough coin !')
        return -1
    url = "http://api.bilibili.com/x/web-interface/coin/add"
    data = {
        'bvid': bvid,
        'multiply': 1,
        'select_like': 1,
        'csrf': csrf
    }
    cookie = extract_cookies(cookies)
    r = requests.post(url, data=data, cookies=cookie).text
    j = json.loads(r)
    code = j['code']
    if code == 0:
        logging.info(bvid+' toaddcoin successful !')
        return 1
    else:
        logging.info(bvid+' toaddcoin failed!')
        return 0

# 分享视频

def toshare(rid):
    url = "https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/share"
    data = {
        'uid': 0,
        'type': 8,
        'share_uid': 0,
        'content': 'testing!',
        'rid': rid,
        'csrf': csrf
    }
    cookie = extract_cookies(cookies)
    r = requests.post(url, data=data, cookies=cookie).text
    j = json.loads(r)
    code = j['code']
    dynamic_id = j['data']['dynamic_id']
    if code == 0:
        logging.info('share successful!')
    else:
        logging.info('share failed!')
    time.sleep(2)
    todelshare(dynamic_id)

# 删除动态

def todelshare(dynamic_id):
    url = "https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic"
    data = {
        'dynamic_id': dynamic_id,
        'csrf': csrf
    }
    cookie = extract_cookies(cookies)
    r = requests.post(url, data=data, cookies=cookie).text
    j = json.loads(r)
    code = j['code']
    if code == 0:
        logging.info('share delete successful!')
    else:
        logging.info('share delete failed!')

def run():
    getInfo()
    Task()

if __name__ == '__main__':
    run()


申明
综上所述,仅供参考学习交流,严禁做违法之事,所产生的不良后果与本人无关。侵权麻烦管理删帖,谢谢。



如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2021-12-6 11:36 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-12-6 12:05 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-12-6 14:47 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-12-6 14:55 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-12-6 15:36 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-10 10:42 , Processed in 0.040710 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表