如何使用Python自动化B站任务

在繁忙的生活中,有时候没有足够的时间去完成一些日常任务,比如在B站投币、点赞、分享视频。但是,如果你是一名B站的资深用户,你可能知道这些任务可以帮助你获得更多的经验和银币。所以,有没有一种方法可以让计算机来代替你完成这些任务呢?答案是肯定的!在这篇教程中,我们将介绍如何使用Python编写自动化脚本来完成B站的任务,让你可以轻松地获取更多的经验和银币。

准备工作

在开始之前,你需要准备以下内容:

  1. B站账号:确保你有一个B站账号,并且已经登录到B站网站。
  2. Python环境:确保你已经安装了Python,并且可以在命令行中运行Python脚本。
  3. B站的Cookie:你需要从浏览器中获取你的B站Cookie,用于登录和访问B站的API。在浏览器中登录B站后,你可以按照以下步骤获取Cookie:

    • 登录B站网站。
    • 打开浏览器的开发者工具(F12键)。
    • 在开发者工具中切换到“网络”选项卡。
    • 刷新B站网页。
    • 在网络请求中找到一个名为“http://api.bilibili.com/x/space/myinfo”的请求,点击它
    • 在右侧的面板中找到“请求标头”一栏,你将看到一个名为“Cookie”的值。复制这个值,它是你的B站Cookie。

    获取Cookie

编写Python脚本

现在,我们将编写Python脚本,用于自动化执行B站的任务。以下是一个示例脚本,你可以根据需要进行修改和定制。

# -*- coding: utf8 -*-

import requests
import json
import time
import random

# 填写你的B站Cookie
cookies = "在这里粘贴你的B站Cookie"

# 将Cookie转换为字典
def extract_cookies(cookies):
    global csrf
    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 int(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']
    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()
    times = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    msg = "【B站任务】" + str(times) + "\n欢迎!当前等级为" + str(level) + "\n当前经验为" + str(current_exp) + "\n距离升级还差" + str(sub_exp) + "经验\n需要" + str(
        days) + "天\n" + \
          "剩余银币数量为" + str(coin)
    print(msg)
    return msg

# 推荐动态
def getActiveInfo():
    url = "http://api.bilibili.com/x/web-interface/archive/related?aid=" + \
        str(7)
    cookie = extract_cookies(cookies)
    r = requests.get(url, cookies=cookie).text
    j = json.loads(r)
    return j

# 推荐动态的第二种方式
def getVideo():
    random_page = random.randint(0, 167)
    url = "http://api.bilibili.cn/recommend?page=" + str(random_page)
    cookie = extract_cookies(cookies)
    r = requests.get(url, cookies=cookie).text
    j = json.loads(r)
    return j

# 执行任务:投币、分享5次
def Task():
    coin_num = getCoin()
    # 需要投币的个数
    num = 5
    if coin_num <= num:
        num = coin_num
    coin_count = 0
    count = 0
    while True:
        j = getVideo()
        list_len = len(j['list'])
        random_list = random.randint(1, list_len - 1)
        bvid = j['list'][random_list]['bvid']
        aid = j['list'][random_list]['aid']
        print(str(count) + ' ---- ' + str(bvid) + ' ---- ' + str(aid))
        count = count + 1
        toview(bvid)
        time.sleep(5)
        shareVideo(bvid)
        time.sleep(5)
        if coin_count < num:
            coin_code = tocoin(aid, bvid)
            if coin_code == -99:
                return
        if coin_code == 1:
            coin_count = coin_count + 1
        if coin_count == num:
            break
        print('----------------------')

# 观看视频【不会点赞投币】
def toview(bvid):
    playedTime = random.randint(10, 100)
    url = "https://api.bilibili.com/x/click-interface/web/heartbeat"
    data = {
        'bvid': bvid,
        'played_time': playedTime,
        '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:
        print('观看视频成功!')
    else:
        print('观看视频失败!')

# 分享视频
def shareVideo(bvid):
    url = "https://api.bilibili.com/x/web-interface/share/add"
    data = {
        'bvid': bvid,
        'csrf': csrf
    }
    cookie = extract_cookies(cookies)
    # 需要请求头
    header = {
        "Content-Type": "application/x-www-form-urlencoded",
        "Connection": "keep-alive",
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38",
    }
    r = requests.post(url, data=data, cookies=cookie, headers=header).text
    j = json.loads(r)
    code = j['code']
    if code == 0:
        print('分享视频成功!')
    else:
        print('分享视频失败!')

# 投币函数
def tocoin(aid, bvid):
    coinNum = getCoin()
    if coinNum == 0:
        print('银币不足!')
        return -99
    url = "https://api.bilibili.com/x/web-interface/coin/add"
    headers = {
        'authority': 'api.bilibili.com',
        'method': 'POST',
        'path': '/x/web-interface/coin/add',
        'scheme': 'https',
        'accept': 'application/json, text/plain, */*',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9',
        'cache-control': 'no-cache',
        'content-type': 'application/x-www-form-urlencoded',
        'origin': 'https://www.bilibili.com',
        'pragma': 'no-cache',
        'referer': 'https://www.bilibili.com/video/' + str(bvid) + '?spm_id_from=444.41.0.0',
        'sec-ch-ua': '"Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-site',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
    }
    data = {
        'aid': aid,
        'multiply': 1,
        'select_like': 1,
        'cross_domain': 'true',
        'csrf': csrf
    }
    cookie = extract_cookies(cookies)
    r = requests.post(url, data=data, headers=headers, cookies=cookie).text
    j = json.loads(r, strict=False)
    code = j['code']
    if code == 0:
        print(str(bvid) + ' 投币成功!')
        return 1
    else:
        print(str(bvid) + ' 投币失败!')
        return 0

# 一键三连
def toall(bvid):
    coinNum = getCoin()
    if coinNum == 0:
        print('银币不足!')
        return -99
    url = "http://api.bilibili.com/x/web-interface/archive/like/triple"
    data = {
        'bvid': bvid,
        '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:
        print(str(bvid) + ' 三连成功!')
        return 1
    else:
        print(str(bvid) + ' 三连失败!')
        return 0

# 运行任务
def run():
    getInfo()
    Task()

# 主函数入口
if __name__ == '__main__':
    run()

如何运行脚本

  1. 将上面的Python代码复制到一个文本编辑器中,并将B站Cookie粘贴到脚本中的cookies变量中。

  2. 打开命令行终端,进入存储脚本的目录。

  3. 在命令行中运行以下命令,启动脚本:

    python your_script_name.py

    请将your_script_name.py替换为你保存脚本的文件名。

  4. 脚本将开始自动执行B站任务,包括观看视频、分享视频和投币。你可以根据需要自定义任务的数量和频率。

结语

通过这篇教程,你学会了如何使用Python编写自动化脚本来完成B站的任务。这可以帮助你节省时间,轻松获取更多的经验和银币。希望你能够在B站上享受更多的乐趣!

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:如何使用Python自动化B站任务

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年10月20日
下一篇 2023年10月20日

相关推荐

  • Python pip源切换全攻略:提升包下载速度

    在Python开发过程中,经常会使用pip来安装各种依赖包。由于网络环境的不同,直接使用官方源可能会遇到下载缓慢的问题。因此,了解如何切换到更快的镜像源,对于提升开发效率至关重要。本文将详细介绍如何通过一个简…

    2024年3月14日
    00
  • 教程:使用Python和Selenium自动化抖音互动

    随着社交媒体的流行,抖音成为了一个受欢迎的短视频平台,拥有数以亿计的用户。在抖音上,用户可以观看和分享有趣的短视频内容,但您可能不知道,您也可以使用Python和Selenium库来自动化与抖音的互动。本教程将向…

    2023年11月25日
    00
  • B站科普热潮:泛知识类内容的崛起与挑战

    随着科技的不断进步和互联网的普及,知识传播方式也在发生着革命性的变化。短视频平台如B站、抖音和快手等,不仅改变了人们的娱乐方式,还成为了泛知识类内容的重要渠道。本文将深入探讨B站科普热潮的背后,以及泛…

    2023年10月30日
    00
  • B站视频创作激励计划:开启内容创作新篇章

    B站自2024年起推出“视频创作激励计划”,专门针对初期阶段的个人UP主。本文通过我的视角分享计划细节、个人体验与参与方法,旨在帮助更多创作者实现梦想。 作为一名个人UP主,我深知内容创作之路充满挑战。自从B站宣…

    2024年3月19日
    00
  • 使用Python获取文件夹下所有图片并进行文字识别转换为Excel教程

    在本教程中,我们将学习如何使用Python编写一个脚本,该脚本可以自动获取指定文件夹下的所有图片文件,并利用百度AI的文字识别服务将这些图片中的表格内容转换为Excel格式。这种功能在需要从大量图片中提取表格数据…

    2023年12月10日
    00
  • 如何快速掌握Python自动化:从手动到全自动的酷炫之路

    让我来给你讲个故事,关于老张。老张是个码农,刚参加工作那会儿,充满激情,对代码有一种浪漫的认识。可是年复一年,他发现事情并没有那么美好。老张常常需要在深夜工作,因为有太多繁琐重复的任务等着他。直到有…

    2023年9月24日
    00
  • 哔哩哔哩创作中心:探秘弹幕视频的创作者天地

    你是否曾经沉浸在哔哩哔哩的弹幕世界中,欣赏着各种有趣、创新的视频内容?你是否也曾对如何成为一名哔哩哔哩的创作者心怀向往?如果是的话,那么你来对地方了!本文将带你进入哔哩哔哩创作中心,一窥其中的精彩世…

    2023年10月28日
    00
  • B站与HarmonyOS合作,鸿蒙原生应用开发正当时

    最近,哔哩哔哩(B站)宣布与HarmonyOS达成全面合作,将推出鸿蒙版B站APP。这一消息引发了广泛的关注和讨论。在这篇文章中,我们将探讨B站与HarmonyOS合作的意义以及国内厂商对软件适配和系统优化的共同努力。 背景…

    2023年12月4日
    00
  • 如何自动化发送数据库查询结果邮件:简单教程

    数据库查询是许多自由职业者和远程工作者日常工作中的一项重要任务。然而,手动执行这些查询并将结果发送给特定的收件人可能会非常耗时,特别是当这个任务需要定期执行时。为了提高工作效率,我们将学习如何使用Pyt…

    2023年9月24日
    00
  • 分享一个之前写的微信根据关键词发布朋友圈的auto.js

    想象一下,你每天都要发布微信朋友圈,分享生活中的点滴,但是这个过程变得越来越耗时,每天都需要花费大量的时间来完成。你可能想要寻找一种更高效的方式来自动发布朋友圈,以便有更多的时间去做其他事情。这时,A…

    2023年8月19日
    00