温馨提示:因为b站API并没有提供所有人员数据,所以多人数情况并不适用!!!
实测4w转,实际500左右的数据!!!
## 运行python脚本需要的条件: 1、连通的网络 2、已安装Python2并配置环境变量 3、Python脚本源码
环境搭建:
网络就不用我说了(〃'▽'〃) 那么下面我们来安装python吧。 Python官网有2个版本2和3,我们选择2,因为语法等方面会有所不同。 Python2下载:https://www.python.org/downloads/windows/
环境变量配置方法:
“计算机”右键-> “属性”->“高级系统设置”->“环境变量”-> 系统变量中找到“Path”->“编辑”->“新建”-> 将你python安装的路径粘贴进去-> 全部“确认”。
测试python是否配置完成。 按Win+R 键,输入“cmd”,“确认”。
成功运行python命令即表示成功。
编写脚本:
桌面右键 -> “新建”-> “文本文档” -> 取名为 “抽奖.py”(不要隐藏文件扩展名) 修改正确后的图标是
,而不是
。
补充 取消隐藏文件扩展名的方法(win10):
1、打开 “计算机” 2、点击这个箭头
3、选择 “查看”
4、勾上 “文件扩展名”
5、回到“桌面”,再次修改文件名。
中文版源码:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""Bilibili动态转发抽奖脚本 V1.1Auteur:Poc Sir Bilibili:鸟云厂商Mon site Internet:https://www.hackinn.comWeibo:Poc-Sir Twitter:@rtcatc更新内容: 1.增加了对画册类型动态的支持。"""
import os
import urllib2
import json
import sqlite3
import random
import webbrowser
import re
import time
from urlparse import *
def GetMiddleStr(content,startStr,endStr):
startIndex = content.index(startStr)
if startIndex>=0:
startIndex += len(startStr)
endIndex = content.index(endStr)
return content[startIndex:endIndex]
def GetUsers():
global Bilibili_Key
GetTotalRepost()
Tmp_count = 0
Bilibili_Key = 0
DynamicAPI = "https://api.live.bilibili.com/dynamic_repost/v1/dynamic_repost/view_repost?dynamic_id="+ Dynamic_id + "&offset="
conn = sqlite3.connect('Bilibili_TMP.db')
c = conn.cursor()
while Tmp_count
Tmp_DynamicAPI = DynamicAPI + str(Tmp_count)
try:
BiliJson = json.loads(GetMiddleStr(urllib2.urlopen(Tmp_DynamicAPI).read(),"comments\":",",\"total"))
for BiliJson_dict in BiliJson:
Bilibili_UID = str(BiliJson_dict['uid'])
Bilibili_Uname = BiliJson_dict['uname']
Bilibili_Comment = BiliJson_dict['comment']
Bilibili_Sql = "INSERT or REPLACE into Bilibili (UID,Uname,Comment,ID) VALUES (" + Bilibili_UID + ", '" + Bilibili_Uname + "', '" + Bilibili_Comment + "', " + str(Bilibili_Key) + ")"
c.execute(Bilibili_Sql)
conn.commit()
Bilibili_Key = Bilibili_Key + 1
except:
break
Tmp_count = Tmp_count + 20
else:
Tmp_count = 0
conn.close()
def GetTotalRepost():
global Total_count
global UP_UID
DynamicAPI &#