栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于python的自动化脚本学习小结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于python的自动化脚本学习小结

基于python的自动化脚本学习小结

基于python的自动化脚本学习小结
    • 基于python的自动化脚本学习小结
    • 一、实现思路
    • 二、实现方法
    • 三、具体步骤
      • 1. 校园网自动连接
      • 2. Bilibili直播自动发弹幕

最近利用python做了几个自动化脚本,学习了一些Web自动化的知识,为避免遗忘故做一个小结。

一、实现思路

基于python的自动化脚本制作思路如下:

  1. 选择要使用的自动化实现方法,使用pip install命令下载所需的python库
  2. 编写代码,实现脚本的功能
  3. 设计python的简易GUI界面
  4. 打包为.exe文件
二、实现方法

实现python自动化脚本的可选方法

  1. python自动化方式(这里采用第2种方法)
    (1)Playwright库可实现自动化操作浏览器。
            Playwright可以使用如下代码直接录制浏览器操作生成python代码:
python -m playwright codegen --target python -o 文件名.py -b chromium 要操作的网址

        (2)找到网站的接口,使用requests库模仿用户发送请求操作。

  1. python GUI(这里采用tkinter设计界面)
    (1)tkinter(设计简单界面时用)
    (2)wxpython
    (3)pyqt
  2. 打包为exe文件
    使用python的自动化打包工具pyinstaller生成.exe文件
三、具体步骤 1. 校园网自动连接
  1. 由于校园网用的是网页认证,手机连电脑的热点经常会断开网络连接,因此设计一个小脚本模拟用户认证登录操作。
  2. 抓包发现登录时本质是向服务器发送一个get请求,因此用脚本的核心功能是用requests库来模拟登录操作。
    实现效果:

    代码:
import socket, threading
from tkinter import *
from time import sleep
from requests import get
def is_net_ok():
    s=socket.socket()
    s.settimeout(3)
    try:
        status = s.connect_ex(('www.baidu.com',443))
        if status == 0:
                s.close()
                return True
        else:
                return False
    except Exception as e:
            return False
def autologin():
    while True:
        if entry3.get()=='':
            entry3.insert(END,'1')
            pass
        i = int(entry3.get())
        if is_net_ok()==False:
            a=0
            username = entry1.get()
            pwd = entry2.get()
            i = entry3.get()
            url = 'XXX'
            Params={ "callback":"dr1003", "DDDDD": username,
                     "upass":pwd,"0MKKey":"123456"
            }
            Headers={'referer': 'XXX', "User-Agent": "XXX"}            
            response=get(url=url,params=Params,headers=Headers)                    
            a += 1
            text.insert(END, '第{}次尝试连接  间隔{}秒'.format(a,i))             
        else:
            text.insert(END, '已接连到网络')
        text.see(END)
        text.update()
        sleep(i)
class MyThread(threading.Thread):
    def __init__(self, func, *args):
        super().__init__()  
        self.func, self.args = func, args 
        self.setDaemon(True)
        self.start()    # 在这里开始     
    def run(self):
        self.func(*self.args)
# 窗体界面
root = Tk()
root.title('自动连接校园网')
root.geometry('340x300')
root.resizable(width=False, height=False)
label1 = Label(root, text='请输入用户名:', font=('华文行楷', 16))
label1.grid()
entry1 = Entry(root, font=('隶书', 16), width=15)
entry1.grid(row=0, column=1)
label2 = Label(root, text='请输入密码:', font=('华文行楷', 16))
label2.grid()
entry2 = Entry(root, font=('隶书', 16), width=15)
entry2.grid(row=1, column=1)
label3 = Label(root, text='间隔(秒):', font=('华文行楷', 16))
label3.grid()
entry3 = Entry(root, font=('隶书', 16),width=15)
entry3.grid(row=2, column=1)
entry3.insert(END, '5')
text = Listbox(root, font=('隶书', 16), width=30, heigh=8)
text.grid(row=3, columnspan=2)
button1 = Button(root, text='自动连接', font=('隶书', 15), command=lambda :MyThread(autologin))
button1.grid(row=6, column=0)
button2 = Button(root, text='退出程序', font=('隶书', 15), command=lambda :MyThread(root.destroy))
button2.grid(row=6, column=1)
root.mainloop()
  1. 编写完代码后进行打包
  • 先下载python的打包工具pyinstaller
    pip install pyinstaller
  • 再cd 进入…Python38Scripts文件夹
  • 最后使用命令pyinstaller -F -w -i 图标名.ico 脚本名.py打包脚本
2. Bilibili直播自动发弹幕
  1. 由于B站的弹幕游戏比较热门,但发送弹幕比较麻烦,所以制作脚本模拟用户发送弹幕,先通过按F12进入调试界面发送一条弹幕后找到b站发送弹幕的接口send,发现发送的是POST请求,如下图所示:


2. 获取接口信息后再用requests库来模拟发送弹幕就可以了,代码与上面类似。
实现效果:

  • 基于python的自动化脚本实现

to be continued
how
2022/5/25

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号