python写的学校上网检测程序

日期:2024-12-27 15:49:39 作者:磊落不羁 栏目:办公自动化 评论(0)
import platform import subprocess import webbrowser import socket import os from http.server import HTTPServer, SimpleHTTPRequestHandler import threading import html import sys # HTML模板内置 HTML_TEMPLATE = ''...

PyQt5 QTableWidget列宽设置方法

日期:2023-01-06 16:33:40 作者:磊落不羁 栏目:pyQt5 评论(0)
十、PyQt5 QTableWidget列宽设置方法 #pyqt5 表格怎么点击的时候选择一整行呢 from PyQt5.QtWidgets import QAbstractItemView self.table.setSelectionBehavior(QAbstractItemView.SelectRows) 几种设置模式 先介绍一下: setDefaultSectionSize # 设置固定列宽为80 table_obj.horizontalHeader().setDefaultSectionSize(80) 内置调整模式 #设置每个列宽 模式设置一 self.ta...

Pyqt5学习笔记八、PYQT5选项卡窗口、堆栈窗口、停靠窗口

日期:2022-12-24 13:21:32 作者:磊落不羁 栏目:pyQt5 评论(0)
八、选项卡窗口、堆栈窗口、停靠窗口、子窗口1、QTabWidgetQTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面。通过单击各选项卡可以查看对应的页面。如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分,分别放置在不同页面的选项卡中。 一个示列 import sys # 使用调色板等 from PyQt5.QtGui import QIcon # 导入QT,其中包含一些常量,例如颜色等 # 导入常用组件 from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget,...

Pyqt5学习笔记七、PYQT5表格控件使用

日期:2022-12-24 11:42:48 作者:磊落不羁 栏目:pyQt5 评论(0)
七、PYQT5表格控件的使用PyQt5提供了两种表格控件,分别是TableWidget和TableView,其中,TableView是基于模型的,它是TableWidget的父类,使用TableView时,首先需要建立模型,然后再保存数据;而TableWidget是TableView的升级版本,它已经内置了一个数据存储模型QTableWidgetItem,我们在使用时,不必自己建立模型,而直接使用setItem()方法即可添加数据。所以在实际开发时,推荐使用TableWidget控件作为表格。 QTableWidgetItem类表示QTableWidget中的单元格,一个表格就是由多个单...

Pyqt5学习笔记六、PYQT5数据库使用

日期:2022-12-23 11:45:26 作者:磊落不羁 栏目:pyQt5 评论(0)
六、PYQT5 Mysql 数据库使用1、安装PyMySQL模块pip install PyMySQL2、数据库使用流程import pymysql #1、链接数据库 db=pymysql.connect("localhost",'root','123456','mrsoft') # 2、获取游标 cursor=db.cursor() # 3.执行sql查询 cursor.execute("select * from `student` where id=3;") # 4.获取结果 res=...

Pyqt5学习笔记五、PYQT5对话框使用

日期:2022-12-23 11:10:00 作者:磊落不羁 栏目:pyQt5 评论(0)
五、PYQT之对话框在PyQt5中,常用的对话框有QMessageBox内置对话框、QFileDialog对话框、QInputDialog对话框、QFontDialog对话框和QColorDialog对话框。 1、QMessageBox:对话框五种对话框 对话框的使用方法QMessageBox.information(QWidget, 'Title', 'Content', buttons, defaultbutton) QWidget:self或者窗口对象,表示该对话框所属的窗口。   Title:字符串,表示对话框的标题。   Content:...

Pyqt5学习笔记四、PYQT5的控件(二)

日期:2022-12-23 09:16:43 作者:磊落不羁 栏目:pyQt5 评论(0)
四、PYQT5的高级控件1、进度条类控件T、ProgressBar:进度条ProgressBar控件表示进度条,通常在执行长时间任务时,用进度条告诉用户当前的进展情况。 ProgressBar控件对应PyQt5中的QProgressBar类,它其实就是QProgressBar类的一个对象。QProgressBar类的常用方法及说明。 ProgressBar控件最常用的信号是valueChanged,在进度条的值发生改变时发射。 通过对ProgressBar控件的显示方向、对齐方式、布局方向等进行设置,该控件可以支持4种水平进度条显示方式和2种垂直进度条显示方式。 如果将最小值和最大值...

Pyqt5学习笔记三--菜单栏、工具栏、状态栏

日期:2022-12-22 21:18:29 作者:磊落不羁 栏目:pyQt5 评论(0)
pyqt5 学习笔记三、菜单、工具栏和状态栏1、菜单在PyQt5中,菜单栏使用QMenuBar类表示,它分为两部分:主菜单和菜单项,其中,主菜单被显示为一个QMenu类,而菜单项则使用QAciton类表示。一个QMenu中可以包含任意多个QAction对象,也可以包含另外的QMenu,用来表示级联菜单。 在PyQt5窗口中创建菜单时,需要QMenuBar类、QMenu类和QAction类,创建一个菜单,基本上就是使用这3个类完成. 1.QMenuBar类QMenuBar类是所有窗口的菜单栏,用户需要在此基础上添加不同的QMenu和QAction,创建菜单栏有两种方法,分别是QMenuBar...

Pyqt5学习笔记二、PYQT5的控件(一)

日期:2022-12-22 18:04:49 作者:磊落不羁 栏目:pyQt5 评论(0)
二、PYQT5的控件在PyQt5中,控件的基类位于QFrame类,而QFrame类继承自QWidget类,QWidget类是所有用户界面对象的基类。 1、文本类控件文本类控件主要用来显示或者编辑文本信息,PyQt5中的文本类控件主要有Label、LineEdit、TextEdit、SpinBox、DoubleSpinBox、LCDNumber等 A、Label:标签控件设置文本 setText() 设置对齐 setAlignment() self.label.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) 设置换行...

Pyqt5学习笔记一、Pyqt之布局

日期:2022-12-22 15:49:57 作者:磊落不羁 栏目:pyQt5 评论(0)
Pyqt5学习笔记一、Pyqt之布局pyqt的布局方法一共分为四种 分辨是 水平布局(HorizontalLayout)、垂直布局(VerticalLayout)、表单布局、网格布局(GridLayout)。 使用过程中定义好布局,然后将控件按照排列顺序加入到布局中,布局属于QVBoxLayout类 1、垂直布局增加控件使用addWidget()方法,addwidget(pushbutton,QtCore.Qt.AlignVcenter) 表示增加pushbutton组件到布局并且垂直居中对齐 增加上下间距使用addSpacing()方法,vlayout.addSpacing...

sqlite3 数据库创建、新增数据表 以及增删改查

日期:2022-12-21 17:18:58 作者:磊落不羁 栏目:数据库 评论(0)
sqlite 创建数据表和mysql创建数据表有不同的地方,id的自增不需要特别说明。import sqlite3 conn=sqlite3.connect('stu.db') #链接数据库这里有个特性,如果表格不存在则自动创建 cursor=conn.cursor()  #获得游标 #创建数据表 cursor.execute('create table if not exists stu2(id INTEGER primary key,nam...

PYQT线程应用实例 龟兔赛跑

日期:2022-11-28 15:20:36 作者:磊落不羁 栏目:pyQt5 评论(0)
import sys from PyQt5.QtCore import * from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object):     def setupUi(self, MainWindow):         MainWindow.setObje...

pyqt5 常用知识总结一

日期:2022-11-24 09:51:47 作者:磊落不羁 栏目:pyQt5 评论(0)
做完师大自动考试软件初用pyqt5  知识总结 一、主程序运行添加代码import sys if __name__=="__main__":     app=QtWidgets.QApplication(sys.argv)     MainWindow=QtWidgets.QMainWindow() #创建窗口     ui=Ui_MainWindow()   &nbs...

Selenium添加Cookie来实现自动登录

日期:2022-10-14 19:05:41 作者:磊落不羁 栏目:办公自动化 评论(0)
最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单的实现下如何用cookie来登录总的来说分两步第一步获取你登录的cookie,以csdn为例driver = webdriver.Chrome() driver.get('https://www.csdn.net/') start=time() sleep(15)//这里设置的是等待多少秒,也就是浏览器等待你登录,在这之后就去检查cookie,这个时间短了登录美好,长了你等的时间太长 tr...

python3+selenium4自动化测试-切换窗口与iframe

日期:2022-10-14 18:55:55 作者:磊落不羁 栏目:办公自动化 评论(0)
在自动化测试过程中,有时后会遇到元素定位方式没有问题,但是依旧抛出无法找到元素的异常的问题,通常情况下,如果元素定位没有问题,但还是无法找到元素,则可能是由于当前焦点不在指定页面或iframe导致的,以下将对两种情况分别进行说明1、切换窗口比如我们现在有这样一个需求,进入百度首页后,点击新闻,然后在新闻页面的搜索框输入selenium而使用selenium要如何实现呢,在对selenium不是很熟悉的情况下,仅仅学习了之前的内容,写出的代码就可能会抛出找不到贴吧搜索输入框元素异常,示例代码如下from selenium import webdriver from...

python3+selenium4自动化测试-显式等待、隐式等待与强制等待

日期:2022-10-14 18:53:21 作者:磊落不羁 栏目:办公自动化 评论(0)
在进行自动化测试时,对元素的操作通常都是比较迅速的,而有时会由于页面元素加载需要时间,或页面遮罩未及时关闭导致操作元素失败,这时,就需要用到等待,所谓等待,就是等待元素满足指定条件再执行后续操作,这在测试中对保证成功执行测试通常是非常有用的,常用的等待方式有3种,分别为隐式等待 显示等待 强制等待下面将对3种等待方式逐一说明1、隐式等待设置隐式等待后,webdriver在查找任何元素时都会在一定时间内轮询DOM,在某些元素需要时间加载显示时这通常很有用,但由于使用其会与后续介绍的显式等待冲突导致一些不可控的结果,所以在实际测试中个人不建议使用此等待方式,隐式等待语法如下from ...

python3+selenium4自动化测试-元素常用操作

日期:2022-10-14 18:45:50 作者:磊落不羁 栏目:办公自动化 评论(0)
在做自动化测试时,我们启动浏览器访问指定页面,定位到想要的元素之后,则需要对元素进行一系列操作,以实现模拟功能测试时对页面的操作与结果判断,元素常用的操作有输入内容:send_keys()鼠标点击:click()获取元素可见文本:text清空输入框:clear()获取属性值:get_attribute()判断元素是否启用编辑:is_enabled()判断元素是否显示:is_displayed()判断元素是否被选中:isSelected()提交输入框内容:submit()1、send_keys()send_keys()方法用于给输入框输入内容,是selenium操作元素的最基本操作之一,使用示例...

python3+selenium4自动化测试-元素定位之find_elements()、层级定位与selenium4相对定位

日期:2022-10-14 18:40:00 作者:磊落不羁 栏目:办公自动化 评论(0)
1、find_elements()上一篇介绍了定位单个元素的find_element,使用find_element定位元素时,如果存在多个满足定位条件的元素,将只能得到满足条件的第一个元素,而要得到所有满足条件的元素,则可以使用find_elements()方法find_elements()方法获取元素的方式与find_element()方法完全一致,不同之处在于,find_elements()方法获取元素之后返回的是一个list列表,无论是找到一个、多个还是未找到满足条件的元素,返回的都是一个list列表,而find_element()方法返回的则是单个元素定位示例代码如下:from&nbs...

python3+selenium4自动化测试-浏览器常用基本操作-基础篇

日期:2022-10-14 18:22:59 作者:磊落不羁 栏目:办公自动化 评论(0)
1、打开指定的网页地址我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现from selenium import webdriver driver = webdriver.Edge() driver.get('https://www.baidu.com/')   # 本行用于访问指定的地址2、获取当前页面url我们在测试过程中,有时需要获取当前页面的url以判断是否跳转到指定页面,获取页面url的方法如下:from&nb...

python3+selenium4自动化测试-元素定位之find_element()

日期:2022-10-14 18:10:33 作者:磊落不羁 栏目:办公自动化 评论(0)
学习selenium自动化测试,如何使用WebDriver在页面上准确的查找到要操作的元素是最基本的技术之一,以百度搜索为例,我们要想使用selenium完成搜索操作,打开浏览器进入百度首页后的第一件事,就是找到我们要操作的元素,如文字输入框、百度一下按钮等而要想完成元素定位,Selenium WebDriver为我们提供了多种元素选择器,其中,定位单个元素使用方法find_element(),包括:1、通过ID属性定位一般来说,如果需要定位的元素的ID属性可用、独特且始终可预知的,使用ID属性定位是我们进行元素定位的首选方法,而元素是否可以使用ID定位,可在指定元素上点击鼠标右键,然后点击检...

连云港楼市月销量爬虫

日期:2022-09-24 11:27:23 作者:磊落不羁 栏目:爬虫 评论(0)
话不多说,只是为了数据分析而已import time import requests import re import xlwt list_url='http://lygfdc.com/WebSite/Portal/List.aspx?nodeid=4278FFB377C0D3FD' def get_lists():     lists_all = []     for i in ran...

酷狗音乐单曲爬取

日期:2022-09-22 15:27:55 作者:磊落不羁 栏目:爬虫 评论(0)
酷狗音乐单首歌曲下载单首歌曲下载没有问题url链接复制的别人的进行的修改。我就纳了闷了,怎么我复制的url链接就不行呢?明明区别不大。我这个脑子呀。。果然不如别人灵活。import requests from urllib import parse import json import time import re import os import webbrowser import warnings warnings.filterwarnings('ignore'...

关于百合网会员资料搜索爬取的相关思路

日期:2022-09-22 08:52:22 作者:磊落不羁 栏目:爬虫 评论(0)
今天原本拿百合网做自动化识别的学习测试,在编写过程中发现了百合网如下的爬取思路,可以大批量的获取百合网的会员内容。首先注册个账号,随后登录,便可进入百合网会员界面,随后可以点击搜索进入搜索。这都是正常操作。https://search.baihe.com/在百合网的搜索界面进入开发工具F12在基本搜索界面随便输入条件进行搜索。在开发工具NETwork--XHR中可以看到以下两个链接的出现。通过分析得知 getUserID页面是获取用户id列表的界面。getUserList?userID这个链接是通过getUserID所获取的列表进行的每次8个会员信息页面的展示。而getUserID每次获取的会...

百度好看视频单个视频爬取代码

日期:2022-09-20 15:52:45 作者:磊落不羁 栏目:爬虫 评论(0)
用这个下载在好看视频看好的单个视频 下载速度稳定 新能好  目前使用流畅import requests import re import json import os import webbrowser from tqdm import tqdm def download(url: str, fname: str):     header = {   ...

抖音个人主页视频批量下载

日期:2022-09-15 09:40:28 作者:磊落不羁 栏目:爬虫 评论(0)
个人研究所用 ''' 本程序使用selenium编写  本程序在pycharm中运行是没有问题的 整个程序完整 采用多进程下载技术 所以下载速度也相对较快 主要用途 下载抖音个人主页中所有视频 问题:使用pyinstaller进修打包操作后运行出现障碍,  问题在哪里不清楚 经验  selenium中获取元素 必须使用By引用 原来的获取方式似乎失效因为没有查询到相关资料      所以...

抖音下载个人所有视频

日期:2022-09-10 21:53:47 作者:磊落不羁 栏目:爬虫 评论(0)
今天写了个抖音下载个人所有视频 用的是selenium 自动化技术获取的链接 ,多进程下载。同时分享网上另外一个高手写的批量下载 ,带进度条先发布我的代码,很好用,但是一个缺陷没有解决就是不能按照文件夹归类,原因是无法从网页获取用户名称(待解决)from selenium import webdriver from selenium.webdriver.common.by import By import time import requests import re import js...

python中unicode编码转换为中文

日期:2022-09-02 22:50:13 作者:磊落不羁 栏目:语法字符串 评论(0)
我们使用python中,遇到爬取网站情况,用到unicode编码,我们需要将它转换为中文,unicode编码转换为中文的方法有四种:使用unicode_escape 解码、使用encode()方法转换,再调用bytes.decode()转换为字符串形式、 使用json.loads 解码(为json 格式)、使用eval(遇到Unicode是通过requests在网上爬取的时候)。具体内容请看本文。方法一:使用unicode_escape 解码unicode = b'\\u4f60\\u597d're = unicode.decode(&q...

python 爬取抖音视频

日期:2022-09-02 16:34:23 作者:磊落不羁 栏目:爬虫 评论(0)
抖音爬取最困难的是抖音视频地址的提取 ,提取到视频地址之后 即可进行保存下载     抖音的地址存于script标签间 是编码后的  所以取到地址要进行解码   本案例中使用的解码方式 是request  解码   具体其他解码方式 url其他包解码from urllib import parse #数据对象 data = {     "a":"1", &...

爬取B站单个视频

日期:2022-09-02 15:14:42 作者:磊落不羁 栏目:爬虫 评论(0)
爬虫的基础是页面的分析,分析好页面才可以顺利爬取资源""" 2. 想办法在程序里拿到页面源代码 3. 写正则. 提取到playinfo中的内容 4. 转化成字典. 提取下载url(video, audio) 5. 下载视频和音频 6. 合并起来. """ import requests   # 提前安装requests模块  pip install re...

python 判断程序是否运行函数

日期:2022-05-14 08:14:57 作者:磊落不羁 栏目:常用函数 评论(0)
import psutil as psutil def is_process_running(process_name):     pl = psutil.pids()     for pid in pl:         if psutil.Process(pid).name() == process_n...

一个数据转换的实例

日期:2022-03-16 14:37:51 作者:磊落不羁 栏目:办公自动化 评论(0)
操作要求 从excel中导入表格   对信息进行筛选 分类后 统计保存到新的表格# 东海县教育局 教育考试中心  # 作 者: 刘   磊 # QQ: 247483085 # 编写时间:2022-03-09 --14:24 # coding=utf-8 import xlwt import xlrd from xlutils.copy import&nb...

xlwt 和xlrd 读取写入表格

日期:2022-03-16 14:35:34 作者:磊落不羁 栏目:办公自动化 评论(0)
一个简单的实例 解释 python读取表格和保存写入表格xlwt写入表格 可以写样式  但是不好的地方就是 列需要用数字来表示  import xlwt import xlrd from xlutils.copy import copy #打开xlsx文件并确定数据表 xlsx=xlrd.open_workbook("C:\\Users\\Administrator\\Desktop\\5.xls") table=xlsx.sheet_by_...

爬虫 selenium的使用

日期:2022-03-09 10:39:07 作者:磊落不羁 栏目:爬虫 评论(0)
from selenium.webdriver import Chrome from selenium.webdriver.common.keys import Keys import time web = Chrome() web.get("http://lagou.com") # 找到某个元素. 点击它 el = web.find_element_by_xpath('//*[@id="change...

爬虫 多进程 多线程 协程

日期:2022-03-09 10:33:35 作者:磊落不羁 栏目:爬虫 评论(0)
多线程# 线程, 进程 # 进程是资源单位, 每一个进程至少要有一个线程 # 线程是执行单位 # 启动每一个程序默认都会有一个主线程 # def func(): #     for i in range(1000): #         print("func", i) # # #&nbs...

爬虫 模拟登录、防盗链及代理教案

日期:2022-03-09 10:31:13 作者:磊落不羁 栏目:爬虫 评论(0)
模拟登录# 登录 -> 得到cookie # 带着cookie 去请求到书架url -> 书架上的内容 # 必须得把上面的两个操作连起来 # 我们可以使用session进行请求 -> session你可以认为是一连串的请求. 在这个过程中的cookie不会丢失 import requests # # 会话 # session = requests.session() #&nbs...

request 基本知识

日期:2022-03-09 10:07:06 作者:磊落不羁 栏目:爬虫 评论(0)
requests是爬虫重要的知识1、headers的传递 import requests query = input("输入一个你喜欢的明星") url = f'https://www.sogou.com/web?query={query}' dic = {     "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac&...

re、bs4、xpath的基本使用学习笔记

日期:2022-03-09 08:18:19 作者:磊落不羁 栏目:爬虫 评论(0)
1、re的主要函数及使用#findall  :匹配字符串中所有的符合正则的内容re.findall()    #参数 正则  待处理文本    返回的值是list  正则前面加上r 更好例如 :re.findall(r"\d","ddddddddd")#finditer:匹配字符串中所有的内容【返回的是迭代器】it=re.finditer(r"\d","我的电话号码是111111,我女朋友的电话是:2222") print(...

python 批量删除文件夹内文件名称重复字符串

日期:2022-03-07 08:40:05 作者:磊落不羁 栏目:办公自动化 评论(0)
# coding=utf-8 import os print("----------本程序主要用于目录内文件名称重复部分去除重命名-------------") print("-------------------使用前请确定目录内无其他目录等内容----------------------") outcontent=input("输入要去除的文件名称文字:") old_names=os.listdir(os.getcwd()) for j in old_names...

招生考试网的自动更新爬虫

日期:2022-03-02 10:58:27 作者:磊落不羁 栏目:爬虫 评论(0)
本程序写的目的主要是同步单位的网站信息和上级网站信息,采用爬虫自动分析出信息URL所属类别,获取分类ID 然后对采集网站内容 放入mysql数据库中程序整个过程使用pymysql request   re time  urllib3 1.25版本 几个包 思路如下1、获取列表页url列表2、循环url 获取网页的信息所属类别3、查询数据库中是否存在该来源url 如果存在说明文章存在 跳过 不存在则进入文章页面进行采集4、采集文章页面,获取几个信息5、写入信息到数据库中程序采用同步采集  没有使用 多线程 多进程或者协程  对于一个网站...

Urllib库获取网页源码

日期:2022-02-27 11:39:08 作者:磊落不羁 栏目:爬虫 评论(0)
1,获取网页的头部信息以确定网页的编码方式:import urllib.request   res = urllib.request.urlopen('http://www.163.com')   #info()方法 用来获取网页头部  print(res.info())2,获取网页代码:#导入 urllib库的request模块 import urllib.request #指定要抓取的网页url,必须以http开头的 url =&nbs...