+ 我要发布
我发布的 我的标签 发现
公开标签 #Python
python爬虫开发会用到selenium,如果处理不当会导致firefox/chrome等大量进程积累没有释放,会占用大量内存。 如果使用了 drive.close(),该问题会依然存在。原因是 drive.close() 只会关闭当前窗口。 需要用 drive.quit() 方法。 推荐的做法是将 drive 设置为单例,当整个抓取开始时初始化,整个抓取结束时使用 drive.quit() 统一销毁。
在python中使用tkinter进行图形界面开发时,默认情况下,点击左上角的关闭按钮关闭窗口,不会触发任何事件,会直接关闭窗口。 在开发中我们,有时关闭窗口很多数据和连接没有释放,这时需要监听窗口关闭事件的发生,通过调用 protocol("WM_DELETE_WINDOW", fun) 方法即可实现。 完整的示例代码如下 import tkinter as tk root = tk.Tk() #以下是自定义的关闭窗口时调用的方法 def on_close_windows(): """ :param
TeleMonitor 是一个使用 Python 编写的系统监控工具,它可以监控 CPU、内存和磁盘的使用情况,并通过 Telegram 发送警告。 首先,你需要创建一个 Telegram bot,然后获取 API token。你可以参考 Telegram 官方文档 来创建一个 Telegram bot。 然后,你需要获取你希望接收警告的 Telegram chat ID。你可以使用 @userinfobot 来获取你的 chat ID。 接下来 clone 这个项目: git clone https:
在Python中需要获取网页的状态码,用来判断网页请求是否成功。 获取正在抓取网页的状态码只需要使用到Python自带的 requests 库。 示例代码 import requests #url是正在抓取的页面网址 response = requests.get(url) code = response.status_code 当 code == 200 是,当前网页请求成功。
在使用Python将本地上传到阿里云OSS云存储过程中,需要首先读取本地图片的二进制流,然后通过阿里云OSS提供的SDK将二进制流上传写入到OSS中。完整代码如下: import oss2 import requests from oss2.credentials import EnvironmentVariableCredentialsProvider #读取本地图片到img_bin中 with open(img_path, 'rb') as file: img_bin = file.read() #
Python 中使用 selenium 时,在某些情况下需要滚动到底部数据才能完全加载出来。selenium 没有提供这样一个专用的方法滚动到底部。但 selenium 可以执行 js 代码,我们可以借助js,通过 selenium 来操作js 代码以达到我们要实现的目的。 可以通过修改js代码操作元素scrollTop 的值,来定位右侧滚动条的位置,0是最上面,9999是最底部(一个够大的数字即可)。 滚动条回到顶部 js="var q=document.documentElement.scrollT
结巴中文分词:做最好的 Python 中文分词组件 结巴分词特点 支持四种分词模式: 1,精确模式,试图将句子最精确地切开,适合文本分析; 2,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 3,搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 4,paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pi
默认情况下 selenium 会等待整个界面加载完成(指对html和子资源的下载与解析,如JS文件,图片等,不包括ajax)。 但有时候页面数据渲染是由ajax完成的,如果采用默认情况,则无法得到我们想要的结果,这时需要等待页面所有数据包括ajax加载完成后再进行后续操作。 下面介绍几种等待页面完全加载完成的方法。 time.sleep() time.sleep() 使用 time.sleep() 方法可以让程序暂停指定的时间,等待页面加载完成。但这种方法不够灵活,因为不同的页面加载时间可能不同,设置时
在安装crcmod时报错,完整错误如下 Collecting crcmod==1.7 Using cached crcmod-1.7.tar.gz (89 kB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [6 lines of output] usag
Mojo 是一种新型编程语言,还处于早期阶段,由 Modular 公司开发,基于 MLIR 编译框架构建,旨在为人工智能等领域的软件开发提供统一的编程框架。 Mojo 是 Python 语言的超集,因此也被称为 Python++,它不仅继承了 Python 的易用性,还具备 C+的执行速度和 Rust 的安全特性。 使用 Mojo 语言编写的 Hello world 程序与 Python 相同: print('Hello, World!') 根据官方主页 https://www.modular.com/
python中读取yaml文件前需要安装pyyaml和导入yaml模块 使用yaml需要安装的模块为pyyaml 导入的模块为yaml(import yaml) 读取yaml文件数据 import yaml import os def get_yaml_data(yaml_file): #打开yaml文件 print("*获取yaml文件数据*") file = open(yaml_file, 'r', encoding="utf-8") file_data = file.read() file.clo
1. random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间 2. random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间 3. random.randint(a,b):生成指定范围内的整数 4. random.randrange([start],stop[,step]):用于从指定范围内按指定基数递增的集合中获取一个随机数。 5. random.choice():从指定的序列中获取一个随机元素 6. random.shuffle(x[,r
Python中获取随机值的模块是 random,利用该模块,我们来看看如何从给定的列表中随机获取多个值。 1,给定一个指定的列表 l = ["A", "B", "C", "D", "E", "F", "G", "H"] 2,设定要获取的随机值个数 num = 6 3,利用 random 模块的 sample 方法获取随机值 random_result = random.sample(range(0, len(l)), num) 4,最后返回获取到的 random_result 即可 下面是完整的代码 i
Python匹配字符串时,可以使用re.match和re.search两种方法。re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。 re.match 方法 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。 函数语法: re.match(pattern, string, flags=0) 函数参数说明 pattern:匹配的正则表达式
capitalize() 返回将原字符串的首字母大写的字符串 casefold() 返回将原字符串中所有字符改为小写的字符串 swapcase() 翻转字符串中的大小写 count(sub[,start[,end]]) 从 start 位置开始搜索到 end 位置结束,返回子字符串 sub 在字符串该指定范围内出现的次数,start参数默认为首字符的位置,end参数默认为字符串的最后一个位置 encode(encoding='utf-8',errors='strict') 以 encoding 指定的编
报这个错的原因是获取到的网页内容是经过压缩了的。浏览F12查看ua头,找一下 Accept-Encoding 的值是否包含 gzip,例如: Accept-Encoding: gzip, deflate, br 将 Accept-Encoding 的设置为空,然后再运行,问题就没有了
在使用Python的requests库发送POST请求时,有时候需要设置请求头。 使用Python的requests库发送POST请求的基本方法是使用requests.post(url, data)函数,其中url是请求的目标网址,data是要发送的数据。但是如果需要设置请求头,可以使用headers参数来设置。 以下是一个示例: import requests url = ' data = {'key1': 'value1', 'key2': 'value2'} headers = {'Content
functools模块中lrucache是非常使用的装饰器,它实现了缓存,去重的功能。Python3.x自带functools模块,它将耗时的函数结果保存起来,避免传入相同的参数重复计算。LRU三个字母是"Least Recently Used"的缩写,表明缓存不会无限储存,一段时间不用,或者数量超出一定限制,旧缓存就会扔掉。 functools.lru_cache装饰器语法如下 @functools.lru_cache(maxsize=None, typed=False) 装饰器说明: 使用 func
Python 2.5.x 以上版本内置了 sqlite3 库,因此我们在 Python 中可以直接使用 SQLite。 sqlite3 是 Python 标准库中用于使用 SQLite 数据库的库,提供了轻量级文本数据库的全部功能。sqlite3 库的使用包括引入依赖、连接数据库、创建游标对象、执行 SQL 语句和关闭连接5步,下面我们介绍具体的步骤实现。 1) 引入依赖 具体代码为: import sqlite3 2) 连接数据库 使用 sqlite3 库,必须先创建一个 Connection 对象,
我们使用postman进行接口测试的时候,发现POST请求方式的编码有3种,具体的编码方式如下: - application/x-www-form-urlencoded:最常见的post提交数据的方式,以form表单形式提交数据 - application/json:以json格式提交数据 - multipart/form-data:一般使用来上传文件(较少用) Requests以form表单形式发送post请求 import requests import json url = 'http://htt
在HTML文档中,meta标签用于提供关于文档的元数据 <head> <title>这是TITLE</title> <meta name="keywords" content="这是keywords"/> <meta name="description" content="这是description"/> </head> 抓取到网页内容后,如何通过 BeautifulSoup 来获取页面里的 meta 信息呢? 使用BeautifulSoup对抓取到html内容进行解析,使用find_all方法查找所有
crcmod 是一个用于计算循环冗余检验 (CRC) 的 Python 模块,它可以用于数据完整性验证和错误检测。 1. 安装 crcmod 模块 打开终端或命令提示符,并执行以下命令: pip install crcmod 2. 导入 crcmod 模块 使用 import 语句导入 crcmod 模块: import crcmod 3. 创建 crcmod 实例 使用 crcmod.predefined.Crc 类创建一个 crcmod 实例。这个类接受两个参数:polynomial 和 initC
Python urllib.request.urlopen函数语法 urlopen(url, data=None,[timeout], cafile=None, capath=None, cadefault=False, context=None) 参数说明 url:参数是str类型的 data:默认值为None。参数值为None,请求方式为GET;反之,为POST。(发送POST请求,data参数以字典形式存储数据,并将字典类型转换成字节类型才能完成) 函数返回 一个http.client.HTTPR
运行老版的python代码时报错:The distutils package is deprecated and slated for removal in Python 3.12 原因是源文件所使用的python库已被弃用。 解决方案:所有使用了该库的地方全部替换。