按关键词阅读:
人生苦短,我用Python,所以让我们一起来学习Python吧!
互联网时代,说话没有了限制,于是网络上的“喷子”也是越来越多!
动之以情晓之以理都解决不了这么“喷子”,那么咱们就以其人之道还治其人之身!
环境:
Python3.6+ Windows
模块:
# 导入一个第三请求库
import
requests# 导入一个时间模块
import
time第一步:获取实时弹幕
1.1 定一个需要送的表单
def
post_info_data
()
:# 1.2 打包一些基本信息
from_data = http://www.gunmi.cn/v/{
"csrf_token"
:""
,"roomid"
:10185039
,"visit_id"
:"92cvaa6up88w"
}return
from_data1.2 发送我们已经打包好的数据
def
post_data_url
(data)
:# 要数据到这个URL
url =
"http://api.live.bilibili.com/ajax/msg"
# 发送数据得到响应
response = requests.post(url, data=http://www.gunmi.cn/v/data)
# 一层一层的通过键值对的键找到我们的
data = http://www.gunmi.cn/v/response.json()[
"data"
]["room"
]# 定义一个列表保存最近的10条弹幕数据
itemcont = []
# 遍历我们从字典中所有的键
for
itemsin
data:itemcont.append(items[
"text"
])# print(response)
return
itemcont[-1
]用一个变量接收打包好的数据
post_data = http://www.gunmi.cn/v/post_info_data()# 用一个循环来无限获取
while
True
:# 睡眠1秒,再接着运行
time.sleep(
1
)# 得到最新的一条弹幕信息
cont = post_data_url(post_data)
# print(post_data)
第二步: 发送实时弹幕
2.1要找到我们发送弹幕的URL
# 所需要发送的数据
def
post_data_cont
()
:post_data = http://www.gunmi.cn/v/{
"color"
:"16777215"
,"csrf_token"
:""
,"fontsize"
:25
,"mode"
:1
,"msg"
:"嗨"
,"rnd"
:"1527404803"
,"roomid"
:"10185039"
}return
post_data向服务器发送信息
def
post_url_data
(data)
:# 向这个地址,提交表单,表单中包含了我们需要发送的弹幕信息
url =
"http://api.live.bilibili.com/msg/send"
# cookie 用于服务器记录我们的登录信息
cookie = {
"Cookie"
:"buvid3=9D5AF13F-81C3-44D2-ADBF-7E9EE187FC0A13512infoc; LIVE_BUVID=AUTO5515224216712884; rpdid=kxxkikiqkwdosiipioxpw; finger=c650951b; Hm_lvt_8a6e55dbd2870f0f5bc9194cddf32a02=1527401127,1527404662; sid=4r7a6x2c; fts=1527401995; DedeUserID=321074467; DedeUserID__ckMd5=17d6f40c8a8668f0; SESSDATA=http://www.gunmi.cn/v/c30fb9e3%2C1529994023%2Ca56e1407; bili_jct=57cef56872eb3d2938ee9b66edd0bacd; _dfcaptcha=f6bf50348608fde1876dc53faba7f655; Hm_lpvt_8a6e55dbd2870f0f5bc9194cddf32a02=1527404804"
}# 向服务器提交我们的个人信息,以及需要发送的表单内容和发送到什么地址
response = requests.post(url, cookies=cookie, data=http://www.gunmi.cn/v/data)
# print(response)
# 检测我们发送的状态,是不是正常发送
if
response.status_code ==200
:print(response.json())
pass
form_data = http://www.gunmi.cn/v/post_data_cont()
post_url_data(form_data)
print(form_data)
第三步: 组合第一步和第二步
3.1步
def
post_info_data
(roomid)
:# 3.2 打包一些基本信息
from_data = http://www.gunmi.cn/v/{
"csrf_token"
:"57cef56872eb3d2938ee9b66edd0bacd"
,"roomid"
: roomid,"visit_id"
:"92cvaa6up88w"
}return
from_data3.2 发送我们已经打包好的数据
def
post_data_url
(data)
:# 要数据到这个URL
url =
"http://api.live.bilibili.com/ajax/msg"
# 发送数据得到响应
response = request.post(url, data=http://www.gunmi.cn/v/data)
# 一层一层的通过键值对的键找到我们的
data = http://www.gunmi.cn/v/response.json()[
"data"
]["room"
]# 定义一个列表保存最近的10条弹幕数据
itemcont = []
# 遍历我们从字典中所有的键
for
itemsin
data:# 把得到的弹幕信息添加到列表中
itemcont.append(items[
"text"
])# print(response)
return
itemcont[-1
]3.3步
def
post_data_cont
(post_msg,roomid)
:post_data = http://www.gunmi.cn/v/{
"color"
:"16777215"
,"csrf_token"
:"57cef56872eb3d2938ee9b66edd0bacd"
,"fontsize"
:25
,"mode"
:1
,"msg"
: post_msg,"rnd"
:"1527404803"
,"roomid"
: roomid}return
post_data3.4 向服务器发送信息
def
post_url_data
(data)
:# 向这个地址,提交表单,表单中包含了我们需要发送的弹幕信息
url =
"http://api.live.bilibili.com/msg/send"
# cookie 用于服务器记录我们的登录信息
cookie = {
"Cookie"
:""
}# 向服务器提交我们的个人信息,以及需要发送的表单内容和发送到什么地址
request.post(url, cookies=cookie, data=http://www.gunmi.cn/v/data)
# print(response)
# 检测我们发送的状态,是不是正常发送
# 主函数,(程序入口)
def
main
()
:roomid = input(
"请输入你想要整蛊的房间ID:"
)while
True
:time.sleep(
2
)form_msg_data = http://www.gunmi.cn/v/post_info_data(roomid)
post_msg = post_data_url(form_msg_data)
print(
"实时弹幕是 - > %s"
% post_msg)post_msg_cont = post_data_cont(post_msg,roomid)
print(
"正在发送的弹幕 - > %s "
% post_msg)post_url_data(post_msg_cont)
if
__name__ =="__main__"
:main()
来源:(未知)
【】网址:/a/2018/0612/j1167066.html
标题:网上喷子太多,用Python开发弹幕轰炸程序怒怼“网络喷子”