
python3
主要是在自学python3 的过程中遇见的一些问题
Jason_WangYing
有付出才有收获,敢于拼搏,与时俱进。
展开
-
运行Python代码错误提示 (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3:
刚刚在运行python文件的时候竟然报SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: tr这个错误,其实引起这个错误的原因就是转义的问题。如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。原因分析:在windows系统当中读取文件路径可以使用\,但是在python字符串中\有转义的含义,原创 2023-06-01 11:07:27 · 6154 阅读 · 0 评论 -
Python 去除空格的方法
python 去除空格原创 2022-10-18 19:05:25 · 11925 阅读 · 0 评论 -
selenium无法获取到标签的文本内容(text)的解决方法
在用driver.find_element_by_xxx().text()获取文本的时候,得到的文本为空,我们发现是有内容的,但是取出时是空。怎么判断是否被隐藏呢,可以通过.is_displayed()方法来判断。例如:driver.find_element_by_xxx().text() 为空的解决办法。在我们使用selenium进行抓取网页的时候,可能有的时候会抓取不到内容。innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。在某些情况下,我们需要获取隐藏元素的文本。原创 2022-10-09 00:09:10 · 4504 阅读 · 0 评论 -
selenium 刷新页面
导航是用于执行各种浏览器操作的界面,如导航到上一页、导航到下一页、刷新页面、关闭浏览器。导航接口的刷新方法不接受任何参数,也不返回任何值。这是Selenium Web驱动提供的执行页面刷新操作的内置方法。该命令刷新命令可以以如下所述的简单方式使用。Get方法可以以递归方式使用来刷新页面。为了实现这一点,我们需要将另一个方法作为参数传递给GET方法。有时我们需要刷新下浏览器,这是我们可以通过下来两个方法来刷新页面。原创 2022-10-08 23:31:42 · 13109 阅读 · 0 评论 -
selenium点击链接下载文件,并获取文件
在自动化测试时,有时我们会需要自动化获取下载的文件,这是我们要怎么办呢,跟着我一步步的来获取下载的文件吧。download.default_directory是确认我们下载的路径,这里我们用时当前运行代码的路径。可以看到,我们获取到了我们的文件,这里我们就可以通过os命令来查询了。当然我们还可以换种方式,我们可以通过下载链接的文件名去搜索。配置我们的chrome浏览的下载环境,去除弹窗确认。这里我们可以通过ls命令来查询我们的文件。打开网页,并且点击下载的文件链接。首先声明下,我们需要引入的类。原创 2022-10-08 23:22:25 · 7165 阅读 · 0 评论 -
python try except 语法 多个except
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。except (name1,name2): 捕获任何列出的异常。原创 2022-10-05 23:35:01 · 2727 阅读 · 0 评论 -
selenium获取网络响应的正文
到这里,我们成功获取到了网页加载的所有资源,资源都在request_log里面,现在我们就需要筛选出来我们需要的资源requestId。这里最主要是driver里面的 execute_cdp_cmd方法,我们可以根据此方法来获取网页的请求包,具体。有时我们爬虫时,需要获取到页面的api接口响应正文。原创 2022-10-05 00:06:00 · 4037 阅读 · 0 评论 -
mac 在终端上运行脚本,提示PermissionError: [Errno 1] Operation not permitted
今天在终端上运行脚本时,提示权限不足PermissionError: [Errno 1] Operation not permitted。解决办法是给脚本个超级权限。原创 2022-10-03 15:44:08 · 5008 阅读 · 1 评论 -
python selenium处理alert弹出对话框并处理无弹窗判断
python selenium处理alert弹出对话框并处理无弹窗判断,我们的弹出对话框主要分为三种类型:“警告消息框”,“确认消息框”,“提示消息对话”三种类型的对话框。原创 2022-09-14 11:33:36 · 5302 阅读 · 0 评论 -
Python自动浏览器页面,Mac系统安装Chromedriver
解决方法就是将下载后的chromedriver放到指定路径即可,在Mac系统,想通过终端命令将chromedriver 放到 /usr/local/bin 中,可以通过以下命令(如果下方的命令不能成功的话,可以手动找到/usr/local/bin路径,复制过去即可)3、将下载后的 chromedriver 放到 /usr/local/bin 中,如果不放入的话, 当使用driver = Webdriver.Chrome()创建实例时,需要填写Chromedriver的存放路径。4、这样就可以使用了。原创 2022-09-13 21:24:35 · 1695 阅读 · 0 评论 -
【无标题】
WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。import wmi# # 硬盘序列号# CPU序列号# 主板序列号# mac地址# 获取机器的制造商,机器型号等信息# bios序列号。原创 2022-09-12 22:55:03 · 199 阅读 · 0 评论 -
问题贴,今天遇见了个问题,解决了一天都没解决
今天用多线程写了个类,获取ts文件内容,并用另一个线程写入对应的文档,但是预计了个奇怪问题,文件写入,只能写入获取文件数据一半的数据量,到现在也没搞明白怎么回事。先记录下,等过几天有空了,再详细解决下。原创 2022-09-12 00:57:59 · 442 阅读 · 0 评论 -
m3u8文件格式讲解,Python解析m3u8文件,并获取在线地址
EXT-X-KEY:METHOD=AES-128,URI="http://****/key.key" //这个是提示时加密文件,key值就从后面的URI下载,METHOD是加密方式。#EXT-X-MEDIA-SEQUENCE:xx //M3U8直播是的直播切换序列,当播放打开M3U8时,以这个标签的值作为参考,播放对应的序列号的切片。#EXT-X-VERSION:3 //hls的协议版本号,暗示媒体流的兼容性,常见的是3(目前最高版本应该是7)。#EXT-X-STREAM-INF:代表不同的播放流,原创 2022-09-12 00:52:44 · 12363 阅读 · 0 评论 -
Python 使用zxing解析二维码
如果想批量解码,我们可以使用while来循环。我们的二维码都在一个文件夹里面。原创 2022-09-03 00:16:45 · 1074 阅读 · 0 评论 -
错误:ModuleNotFoundError: No module named ‘httplib‘
由于项目是有python2升级来的,所以这就是python版本不同造成的报错。原创 2022-09-02 13:01:13 · 1814 阅读 · 1 评论 -
AttributeError: ‘dict_keys‘ object has no attribute ‘sort‘
最后发现是由于python2,python3写法不同,实际上sort的写法确实改变了。改成如下写法就可以解决问题。运行py文件发现这条出错,检索错误提示没找到具体的部分。原创 2022-09-02 12:51:37 · 1300 阅读 · 0 评论 -
python Scapy获取局域网内的IP和mac地址
scapy获取局域网内设备IP和mac地址原创 2022-08-23 15:18:59 · 1892 阅读 · 0 评论 -
python3 requests中文乱码问题之压缩格式问题
我们再看"Accept-Encoding",这个意思就是返回的数据使用的是什么压缩格式,平常我们经常使用"gzip, deflate",这是我们发现后面还跟了个br,br是什么格式呢?刚开始我用request库时发现,对返回的response数据必须要引入brotli,这样才能解压缩数据,如果不引入无法解析数据,还是会反回乱码数据。我们在爬虫时,经常会遇见中文乱码问题,之前都是编码格式的问题,很少遇见由于压缩格式造成的编码混乱问题,特记录下。我们转了后发现解析出来的数据还是乱码,这是什么情况呢?...原创 2022-08-18 14:22:18 · 1214 阅读 · 0 评论 -
python解压br格式文件brotli安装使用
br 指的是 Brotli,是一种全新的数据格式,无损压缩,压缩比极高(比gzip高的)Brotli具体介绍:https://www.cnblogs.com/Leo_wl/p/9170390.htmlBrotli优势:https://www.cnblogs.com/upyun/p/7871959.html。原创 2022-08-16 21:14:19 · 6593 阅读 · 0 评论 -
微信小程序源码获取和反编译
在.wxapkg文件所在目录下输入 node wuWxapkg.js [-d] //files 就是你想要反编译的文件名 例如:我有一个需要反编译的文件22.wxapkg文件,具体的命令就是。提醒:这里是第一次使用这个小程序时才会下载,如果已经使用过了,这个就不会再下载,建议清空微信缓存后再试、或者直接登录一个新的微信号。这里 res.servicewechat.com是小程序的域名,我当时是一个个去看的,你们可以直接筛选这个域名,这样就不用去找了。同样的,如果报缺少别的框架,我们下载别的就行。...原创 2022-08-14 01:22:28 · 4103 阅读 · 0 评论 -
如何在终端里面使用ping来查局域网活动ip
我这里是为了查数据方便,只查询了192.168.2.1-192.168.2.20之间的ip。1、获取本机ip,根据本机ip去查局域网ip,如果知道自己要查的具体ip可以忽略本步。3、查询完成后,想查看所有数据需要使用命令arp -a。2、使用轮询ping命令来查询局域网ip。这样就查出来所有ip了。...原创 2022-08-06 14:00:23 · 2795 阅读 · 0 评论 -
【无标题】
网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark是目前全球使用最广泛的开源抓包软件,其前身为Ethereal,是一个通用的网络数据嗅探器和协议分析器,由Gerald Combs编写并于1998年以GPL开源许可证发布。我们可以发现网络数据又很多,但是我们又发现有很多都是无效数据,都不是我们真正需要的数据,这时我们要如何筛选出来有效数据呢?发现我红色圈出来的地方就是封包的数据,这里的意思就是user参数是xview,中间有空格可以忽略,我也不知道具体是什么原因。.原创 2022-08-05 20:06:19 · 506 阅读 · 0 评论 -
http里post的Query与Body的区别
Query与Body参数的区别原创 2022-08-02 18:32:26 · 3574 阅读 · 0 评论 -
python request要求接口参数必须是json数据
1、data为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式。在使用包含文件上传控件的表单时,必须使用该值。3、json为dict时,如果不指定content-type,默认为application/json。4、json为str时,如果不指定content-type,默认为application/json。2、data为str时,如果不指定content-type,默认为text/plain。...原创 2022-08-02 18:14:32 · 1228 阅读 · 0 评论 -
python数据批量写入ScrolledText的优化方法
其实就是空间换取了时间,先写入内存,在批量更新界面。如下所示:for i in data[::-1]: self.maintenance_text.insert(tk.END, str(i['payload']) + '\n\n') self.maintenance_text.see(tk.END)改为:str_data = '\n\n'.join([str(i) for i in data[::-1]])self.maintenance_text.insert(tk.END, s原创 2022-03-01 23:09:11 · 483 阅读 · 0 评论 -
Python如何用代码打开文件夹
最开始,我是根据是否报错来判断的 try: os.system("open " + self.get_exe_file_path()) except: os.system("start " + self.get_exe_file_path())结果来了个大脸,在windows下直接返回为空,这是优化后的pen_back_text = os.system("open " + self.get_exe_file_path())#在w原创 2022-03-01 13:58:10 · 990 阅读 · 0 评论 -
python tabula获取pdf的列表数据
tabula的功能比camelot更加强大,可以同时对多个表格数据进行提取。项目的具体地址请参考:https://github.com/chezou/tabula-py安装tabula的安装是非常简单的:pip install tabula-py # 安装python扩展安装之后检验这个库是否安装成功:读取PDF文件通过tabula这个库来读取PDF文件:df1 = tabula.read_pdf("test.pdf",pages="all")然后我们发现列原创 2022-02-24 14:02:41 · 4428 阅读 · 0 评论 -
Python 使用camelot将PDF转Excel,简单实用
安装camelotCamelot在读取PDF文件中的表格数据很好用,因此安装这个包就很有需要了,但是直接在cmd里面使用pip install camelot-py会出错,首先提示pip版本需要更新到最新版本,更新之后提示错误Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。这个时候就需要更改文件的权限,将权限更改为【完全控制】。然后执行pip install camelot-py即可。如果遇见ERROR原创 2022-02-24 13:49:24 · 3115 阅读 · 1 评论 -
对tkinter简单封装了窗口拖动和点击获取鼠标位置的方法
from tkinter import Tkfrom tkinter import *class PfTk(Tk): """ Tk的扩展 增加了对鼠标左键拖动的支持 封装了部分功能方法 """ def __init__(self, title='PfTk', width=600, height=300, bg='red'): """ 初始化Tk :param title: str: 窗口标签(默认: P.原创 2022-02-21 09:32:56 · 1885 阅读 · 0 评论 -
python打包后获取exe路径
在写python程序中,有可能需要获取当前运行脚本的路径。打包成exe的脚本和直接运行地脚本在获取路径上稍微有点不同。import osimport sysconfig_name = 'myapp.cfg'# determine if application is a script file or frozen exeif getattr(sys, 'frozen', False): application_path = os.path.dirname(sys.executable原创 2022-02-12 18:06:35 · 4947 阅读 · 0 评论 -
在命令行中打开某个文件夹
在macOS中使用 open 命令,如打开 ~/Download/abcopen ~/User/在windows中使用start命令打开文件夹start C:/原创 2022-02-12 17:16:07 · 1213 阅读 · 0 评论 -
pyautogui.locateCenterOnScreen 返回NoneType错误
代码如下:import pyautoguipyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyautogui动作后才能使用,建议用time.sleep# pyautogui.FAILSAFE = True # 启用自动防故障功能,左上角的坐标为(0,0),将鼠标移到屏幕的左上角,来抛出failSafeException异常pyautogui.FAILSAFE = Falseimg_point = pyautogui.locateCenterOnScre原创 2022-01-12 22:45:45 · 5005 阅读 · 3 评论 -
Pyautogui函数
moveTo(x,y) 将鼠标移动到指定的 x、y 坐标 (屏幕以左上角为原点(0,0),向下y增加,向右x增加)moveTo(x,y,duration) 使用duration值设置几秒后移动鼠标到指定的 x、y 坐标moveRel (x,y) 相对于当前的鼠标位置移动鼠标。size() 获得屏幕的width和height值position() ...原创 2022-01-10 18:53:01 · 516 阅读 · 1 评论 -
自动化工具PyAutoGUI :键盘操作
pyautogui.typewrite('Hello world!') # 输入Hello world!字符串pyautogui.typewrite('Hello world!', interval=0.25)# 每次输入间隔0.25秒,输入Hello world!pyautogui.press('enter') # 按下并松开(轻敲)回车键pyautogui.press(['left', 'left', 'left', 'left']) # 按下并松开(轻敲)四下左方向键pyaut.原创 2022-01-10 18:47:46 · 11059 阅读 · 1 评论 -
pyperclip 粘贴失效
最近在pyautogui自动化输入时,发现英文数字都可以,中文比较麻烦,而且还牵扯到输入法切换问题,pyautogui.typewrite()这是相当于键盘输入,如果现在是中文,有可能会出现中文。这时就需要用到pyperclip这模块,pyperclip有两个方法:pyperclip.copy('需要输入的汉字')pyperclip.paste()结果发现paste粘贴不能用,没有结果展示。这时想到了利用快捷键来输入。pyautogui.moveTo(800,400,durat原创 2022-01-10 18:44:52 · 2709 阅读 · 2 评论 -
Python pyautogui分辨率不同造成的图片定位与鼠标位置不一致的解决方法
最近在mac上使用pytautogui时候发现屏幕获取的size与截全屏获取的图片的size的大小不一致,根据图片定位的位置鼠标挪移过去发现与真正需要的位置也不一致,最后发现是分辨率的问题。最后想了下,可以根据分辨率来解决这个问题。import pyautoguiimport timepyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyautogui动作后才能使用,建议用time.sleeppyautogui.FAILSAFE = True ...原创 2022-01-10 17:24:26 · 6705 阅读 · 1 评论 -
pyautogui提高图片定位识别的精准度
最近在使用pyautogui时,发现有一些小的按钮或者标示识别不了,特别是没有文字,只有一个图标的识别的特别差,倒是一些含有文字的识别的特别好。img_point = pyautogui.locateCenterOnScreen("img/safari.png",grayscale=False)我们经常使用就是上面的方法,直接传递一个图片地址,然后识别出具体的目录。有很多人说grayscale设置灰度后就会加快识别速度,我试了这个不能增加准确度,对于我的项目没有什么用,最后找到confiden原创 2022-01-10 16:07:25 · 6554 阅读 · 1 评论 -
python 统计方法耗时的方便模块timeit
python中的timeit()方法, 它用于获取代码的执行时间。该库将代码语句运行一百万次,并提供从集合中花费的最短时间。这是一种有用的方法,有助于检查代码的性能。语法如下:timeit.timeit(stmt, setup,timer, number)参数解析:stmt:这将采用您要测量其执行时间的代码。默认值为“pass”。setup:这将包含需要在stmt之前执行的设置详细信息。默认值为“ pass”。timer:它将具有计时器值,timeit()已经设置了默认值,我们可以忽略它。nu原创 2022-01-10 15:13:08 · 394 阅读 · 0 评论 -
Python打包如何保护源码,防止反编译。
Python的脚本文件是开源的,量化策略的安全性没有保障。因此需要保护源码。那么要对Python代码进行混淆、加密保护。混淆代码,我准备使用pyminifier。而加密处理,就比较麻烦。Python有py、pyc、pyw、pyo、pyd等文件格式。其中,pyc是二进制文件。但很容易被反编译。pyw也不行,只是隐藏命令行界面而已,可以作为入口脚本。pyo和pyc差不多,也容易被反编译。最后剩下pyd格式。pyd格式是D语言(C/C++综合进化版本)生成的二进制文件,实际也会是dll文件原创 2022-01-09 23:54:18 · 5090 阅读 · 0 评论 -
Python tkinter 多选框控件
直接上代码:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2022/1/9 8:33 下午# @Author : wangying# @Site : # @File : 复选框.py# @Software: PyCharmimport tkinter# 创建主窗口win = tkinter.Tk()# 设置标题win.title('选择题')# 设置大小和位置,前两个x大小 后两个+位置原创 2022-01-09 20:41:46 · 2652 阅读 · 0 评论