- 帖子
- 16
- 精华
- 0
- 积分
- 64
- 阅读权限
- 20
- 注册时间
- 2022-9-13
- 最后登录
- 2024-1-19
|
本帖最后由 Danieldepython 于 2022-10-7 17:46 编辑
有时候,为了针对室友熬夜打游戏,所以,我特意用几分钟写了个13行代码的b站远程关机
首先,既然说了要requests,那就肯定得先安装啦除此之外,我们还要额外装两个模块相信你们已经猜到这两个是干嘛的了,但是不懂得后面你就知道了
首先,我们得找找有没有api,所以我去了世界上最大的搜索引擎-----百度!(其实我用的是bing)
然后我找到了个https://api.bilibili.com/x/space/acc/info这个api,参数只有mid(b站uid)一个方式为get
然后还得循环重复爬取然后休眠10秒
所以到现在为止大概是这样的- import requests
- import time
- import os
- uid = input("请输入uid:")
- while 1:
- url = "https://api.bilibili.com/x/space/acc/info?mid="+uid
- text = requests.get(url)
- data = text.text()
- print(data)
复制代码 但是细心的你一运行发现,他把你的请求当做机器人拦截不让你获取
这时候我们就可以加上ua来模拟是人类访问的,这里我以edge浏览器的ua为例- import requests
- import time
- import os
- uid = input("请输入uid:")
- headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49'}
- while 1:
- url = "https://api.bilibili.com/x/space/acc/info?mid="+uid
- text = requests.get(url,headers=headers)
- data = text.text()
- print(data)
- time.sleep(10)
复制代码 然后,我们还需要把赋值给data的text.text()改成text.json()转换成字典- import requests
- import time
- import os
- uid = input("请输入uid:")
- headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49'}
- url = "https://api.bilibili.com/x/space/acc/info?mid="+uid
- while 1:
- text = requests.get(url,headers=headers)
- data = text.json()
- print(data)
- time.sleep(10)
复制代码 结果输出了一大串字典,如图
此时寻找很麻烦,所以我找到了一张格式化后的图:
(顺便把各种返回参数标注了)
现在就一目了然了
这时,我们再加个判断然后去掉print和用os模块的system函数执行关机指令就可以了
最终代码:- import requests
- import time
- import os
- uid = input("请输入uid:")
- headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49'}
- while 1:
- url = "https://api.bilibili.com/x/space/acc/info?mid="+uid
- text = requests.get(url,headers=headers)
- data = text.json()
- sign = data['data']['sign']
- if sign == '关机':
- os.system('shutdown /p')#这里可以修改指令,做到远程执行文件等
- time.sleep(10)
复制代码 另外,最后再小小的说一下,你可以在打包exe的时候加上-w的参数做到隐藏
课后作业:
1.自己尝试修改指令做到其他好玩的事
2.尝试增加if判断实现更多指令
3.有能力尝试开机自启动
4.写入uid,判断是否为空如果有则直接运行
提示:玩归玩,闹归闹,劝你不要在室友做ps等东西时候用,小心把你打进icu!
(吐槽一下发帖的这个贴代码功能,我用的tab键缩进全被你们吃了!全是我敲空格敲得!) |
|