傻大方


首页 > 人文 >

网上喷子太多,用Python开发弹幕轰炸程序怒怼“网络喷子”



按关键词阅读:

网上喷子太多,用Python开发弹幕轰炸程序怒怼“网络喷子”

人生苦短,我用Python,所以让我们一起来学习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_data

1.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

items

in

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

(cont)

# 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_data

3.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

items

in

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_data

3.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()

网上喷子太多,用Python开发弹幕轰炸程序怒怼“网络喷子”


    来源:(未知)

    【】网址:/a/2018/0612/j1167066.html

    标题:网上喷子太多,用Python开发弹幕轰炸程序怒怼“网络喷子”


    上一篇:还在等啥,世界杯真的来了

    下一篇:广东丹霞山的阴阳元石隔江而望,网友:大自然真是鬼斧神工!


    人文

    中国男篮无缘直通奥运,谁来承担失利责任?姚明一个字回应:我

    阅读(36)

    在争夺2019男篮世界杯亚洲第一的关键之战中 , 中国男篮以73:86负于非洲劲旅尼日利亚队 , 以净胜分的劣势不敌伊朗队 , 无缘获得亚洲唯一一张直通东京奥运的门票 , 也恐将自中国重返奥运大家庭后首次失去奥运参赛资格 。 中国男篮无缘直通奥运 , 谁来承担失利责任?...

    人文

    丰台 丰台区妇幼保健院食堂来了“大胃王”,厨余垃圾“吃”一半

    阅读(12)

    记者在丰台妇幼保健院厨房内看到了这个厨余垃圾处理池,大年夜外不雅上这个池子和通俗的水池差不多,只不过上方的墙壁上多了个圆形的按钮。工作人员将一盆鸡蛋壳、油菜叶倒入水池中,打开水龙头,抬手按下按钮,然后拿起一个小圆棒将菜叶蛋壳推动水漏。与通俗水池不合的...