python
文章平均质量分 50
我是个假程序员
我是个假的程序员
展开
-
Python实现RSA加解密
加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加密技术,在软件、网页中已得到广泛应用。本文将介绍RSA加密解密在python中的实现。......转载 2022-07-12 15:05:57 · 18304 阅读 · 3 评论 -
请求表头headers设置Accept-Encoding为gzip,deflate,br时,python ——requets的get/post返回的结果有可能是乱码
爬取某页面的数据时,在我本机环境进行请求,返回的结果是正常的,即不乱码,但是把代码拷贝到其他电脑运行,返回的结果就是乱码了。如下:我本机的请求结果:其他电脑运行的结果:百度了好久,都是说返回结果中文乱码的解决方案,都没有把问题解决(原来是自己问题点没有搜索对,毕竟当时自己也想不到)。后面在技术群中请教大佬后,才知道是headers请求头的Accept-Encoding设置值的问题,即Accept-Encoding='gzip,deflate,br’。因为代码都一样,在自己本机运行都正常,所以压根原创 2022-01-21 11:32:04 · 6664 阅读 · 0 评论 -
python 把图片转成可存入数据库的二进制格式
import requestsimport pymysqldef insert_mysql(): img_url = '' img_content = requests.get(img_url).content # 图片转换 img_content = pymysql.Binary(img_content)if __name__ == '__main__': insert_mysql()原创 2021-12-27 14:41:41 · 1990 阅读 · 0 评论 -
如何把字符串“预估佣金:1.69-1.89元”中的1.69-1.89提取出来,即提取出数字、小数点“.”和特殊字符“-”
咨询微信群的大佬后,得出几种方法,如下:test_str = ‘预估佣金:1.69-1.89元’1、r’\d+.?\d±\d+.?\d+’2、r’\d+.\d±\d+.\d+’3、f’:(.?)元’4、f’预估佣金:(.?)元’5、使用字符串切割:test_str.split(":")[1].strip(“元”)6、字符串替换:test_str.replace(‘预估佣金:’, ‘’).replace(‘元’, ‘’)使用 \d+.\d±\d+.\d+ 提取,如果没有 - 时,会提取失败,可原创 2021-12-23 10:56:53 · 121 阅读 · 0 评论 -
python中的RSA加密与解密
什么是RSA:RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外转载 2021-12-16 10:23:25 · 11782 阅读 · 5 评论 -
python中dump、load和dumps、loads的区别
dumpjson.dump()用于将dict类型的数据转成str,并写入到json文件中。import jsonDict = {"name":"tom"}with open("./file.json", "w") as f: json.dump(Dict, f) loadjson.load()用于从json文件中读取数据import jsonwith open("./file.json", "r") as f: Dict = json.load(f) print(转载 2021-12-16 10:10:09 · 111 阅读 · 0 评论 -
Python实现AES加密解密--------zeropadding
import base64from Crypto.Cipher import AES# 密钥(key), 密斯偏移量(vi) CBC模式加密 def AES_Encrypt(key, data): vi = 'Cooooooooooooool' pad = lambda s: s + (16 - len(s)%16) * chr(0) data = pad(data) # 字符串补位 cipher = AES.new(key.encode('utf8'), A转载 2021-12-15 14:25:44 · 1715 阅读 · 0 评论 -
Python实现AES_256 CBC模式加密算法
AESAES(Advanced Encryption Standard)高级加密标准。是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过多年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别转载 2021-12-15 14:22:44 · 3078 阅读 · 0 评论 -
PYTHON AES256解密算法
base64Base64编码,64指A-Z、a-z、0-9、+和/这64个字符,还有“=”号不属于编码字符,而是填充字符。为什么发明这么个编码呢,这个编码的原理很简单,“破解”也很容易,原因是电子邮件刚出来的时候,只传递英文字符,这没有问题,但是后来,中国人,日本人都要发email,这样问题就来了,因为这些字符有可能会被邮件服务器或者网关当成命令处理,故必须得有一种编码来对邮件进行加密,但是加密的目的是为了能够使得一些原始的服务器不出问题(现在服务器早已经能处理这些乱七八糟得情况了,不过因为已经形成了一套转载 2021-12-15 14:17:34 · 2019 阅读 · 1 评论 -
python写的AES128/ECB/pkcs7加密解密函数
因为需要,要实现一个python版的AES128加解密方法,加密模式ECB,填充模式pkcs7.(貌似pkcs5和pkcs7是一模一样的,我没有看具体原因(好像是aes没有64位的,64位对应5?))下面直接贴源代码啦(我找了好几个东拼西凑出来的,反正能工作,也支持中文)# -*- coding: utf-8 -*-from Crypto.Cipher import AESimport os BS = AES.block_sizepad =lambda s: s +(BS - len(s)%转载 2021-12-15 14:08:26 · 2353 阅读 · 0 评论 -
python 实现AES加密解密(对称加密、ECB模式,配合base64)
什么是对称加密什么叫对称加密呢,你可以这么理解,一方通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。什么是非对称加密A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。A将这个消息发给B(已经用B的公钥加密消息)。B收到这个消息后,B用自己的私钥解密A的消息,其他所有收到这个报文的人都无法解密,因为只有B才有B转载 2021-12-15 14:02:33 · 4301 阅读 · 0 评论 -
利用crypto-js、python实现AES 、DES前后端的加解密
前端 crypto-js aes 加解密要用 AES 算法加密,首先我们要引入 crypto-js ,crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密,我们可以采用 npm install crypto-js --save 进行下载安装,也可以直接去 GitHub下载源码~const Crypt转载 2021-12-15 12:08:15 · 12213 阅读 · 0 评论 -
利用Python正则表达式匹配字符串中的http链接。主要难点是用正则表示出http 链接的模式。
利用Python正则表达式匹配字符串中的http链接。主要难点是用正则表示出http 链接的模式。import repattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+') # 匹配模式string = 'Its after 12 noon, do you know where your rooftops are? http://tiny转载 2021-11-26 14:24:44 · 868 阅读 · 0 评论 -
python 中 单下划线 “_” 的含义
按照习惯,有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。例如,在下面的循环中,我们不需要访问正在运行的索引,我们可以使用“_”来表示它只是一个临时值,如下例子:for _ in range(10): print('Hello, World.')# 求在字典列表中的元组中的值求和dict_list_sum = {1: [(3, 6), (7, 6), (6, 1), (9, 0), (1, 10)], 2: [(8, 1), (4, 8), (1, 9)]}total转载 2021-11-23 14:57:26 · 4758 阅读 · 0 评论 -
python中的定时任务 以及 apscheduler模块用法 详解
https://www.cnblogs.com/traditional/p/10991231.html使用threading模块中的Timer函数from threading import Timerimport time def execute_func(name, age, gender, hobby): print(f"name is {name}, age is {age}, gender is {gender}, hobby is {hobby}") def start转载 2021-11-22 14:29:55 · 3591 阅读 · 1 评论 -
python 列表 中 字典元素的值求和
列表如下:results_list = [ { 'avgLasts': 3.2776, 'avgPv': 3.3061, 'brandVoucherAmount': 59500, 'browseUserNum': 1261, 'cargoValue': 79831980, 'cargoValueIncr': 19997900, 'cargoVolume': 6616, 'cargoVolumeIncr': 1536, 'customerComplaintNum':原创 2021-11-17 14:15:01 · 5518 阅读 · 0 评论 -
python把‘[[‘list‘, 4545, ‘中国强‘], [‘就看看‘, 452, ‘json‘]]‘格式的字符串转成list
在python实际的开发中,经常遇到类似’[[‘list’, 4545, ‘中国强’], [‘就看看’, 452, ‘json’]]'的字符串转成列表,那该如何转换的,这里简单介绍两种方式。1.使用ast库,代码如下:import aststr_list = '[['list', 4545, '中国强'], ['就看看', 452, 'json']]'if isinstance(str_list, str): list_data = ast.literal_eval(str_list)2.使原创 2021-09-29 15:37:31 · 114 阅读 · 0 评论 -
介绍python中几种遍历列表的for循环方法
我们在使用列表的过程中,经常需要遍历列表的所有元素,对每个元素执行相同的操作。今天就给大家介绍python中几种遍历列表的for循环方法。首先我们先构造一个numbers列表,如下:numbers = [12, 454, 123, 785, 65]直接使用for循环简单结构遍历:直接使用简单的for循环结构" for i in list: print(i) ",其中代码中的 i 可以自由命名,代码中的 list 为列表的名称,冒号后面的代码换行并缩进。代码如下:# -*- codin原创 2021-08-16 14:48:06 · 36896 阅读 · 0 评论 -
xpath获取标签的class属性包含的多个值
如图:class="items"的标签div下包含有多个div标签,它们的class值都等于"item J_MouserOnverReq item-ad " 或 "item J_MouserOnverReq item-ad ",使用items_list = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq "]') # 或者 items_list = driver.f原创 2021-08-10 12:07:48 · 6307 阅读 · 0 评论 -
Beautifulsoups 有多个class值的标签精确匹配
shop_name_data = shop_data.find(‘div’, class_=‘row and row-2 and title’).find_all_next(‘a’, class_=‘J_ClickStat’)# 上面的这种方式不精确,如果所有a标签的class都包含有J_ClickStat,但有些a标签的class又包含其他的值,如:pic-link J_ClickStat J_ItemPicA,这时候就会把 class='pic-link J_ClickStat J_ItemPicA’原创 2021-08-03 10:21:32 · 3275 阅读 · 0 评论 -
python 提取字符串中的数字、中文以及class有多个样式,find_element_by_css_selector定位方法
提取字符串中的数字、中文:如上图,我要获取图片页面中下一页和总共有多少页,这个时候需要对页面进行提取数字甚至中文,代码如下:# get_attribute('innerText')和get_attribute('textContent')、get_attribute('outerText')都可以获取的定位到元素中的内容# 获取总页数文本内容page_total_text1 = self.driver.find_element_by_xpath('//div[@class="total"]').g原创 2021-07-29 10:28:49 · 1403 阅读 · 0 评论 -
使用python3+selenium+browsermob-proxy-2.1.4 模拟浏览器开发者模式 Network中的抓包
首先,先安装和下载browsermob-proxy,目前最新版是2.1.4安装方法:pip3 install browsermob-proxy下载地址:https://github.com/lightbody/browsermob-proxy/releases注:先使用pip命令安装browsermob-proxy,然后根据上述地址下载二进制文件到本地,程序运行需要读取该二进制文件。Windows使用示例:# -*- coding: utf-8 -*-# 导入相应的库from brow原创 2021-07-12 14:38:58 · 4079 阅读 · 8 评论 -
python 输出乘法口诀
# python 小练习for i in range(1, 10): for j in range(1, i+1): # end=‘’ 表示不换行输出 print(str(i) + '*' + str(j) + '=' + str(i * j), end=' ') print()原创 2021-07-09 14:01:05 · 408 阅读 · 0 评论 -
re 匹配整数、浮点数
如匹配内容text='commentCB({ "version": "v2", "errcode": "0", "errmsg": "", "result":{ "productCommentSummary":{ "SkuId": "1097069", "ProductId": "1097069", "DefaultGoodCount": "258614",...原创 2021-06-21 14:21:09 · 909 阅读 · 0 评论 -
UnicodeEncodeError: ‘latin-1‘ codec can‘t encode characters in position 250-252
如上图,执行python代码的时候报了这样的错,一开始不知道是怎么回事,百度后发现很多答案都是说是字符编码的问题,照着做了一番,还是没能解决问题,继续报错,后面在博客园中找到了如下图的文章内容,根据文章内容提示查看了自己的代码,发现是cookies太长了,后面换行或者删除了才得以解决这个问题。所以问题发生,得根据自己情况进行分析。我的虽然不像博客园中说的属性值长了使用了省略号,但是也是应为过长了导致了这样的问题产生。...原创 2021-06-16 14:02:03 · 1358 阅读 · 4 评论 -
Python将两个列表合并为一个字典
key和value个数一样x = [1, 2, 3, 4, 5]y = ['a', 'b', 'c', 'd', 'e']d = dict(zip(y, x))print(d)# {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}key和value个数不一样Python将两个长度不等的列表合并为一个字典时,服从少数原则(相当于丢弃多余的元素)。# key多x = [1, 2]y = ['a', 'b', 'c']d = dict(zip(y, x))转载 2021-05-26 15:32:50 · 3512 阅读 · 0 评论 -
Python3 中文与url格式编码的转换
我们在爬虫时,url链接中含有中文时,会自动被编码为特殊符号,因此我们需要对中文进行编码操作,同时也有可能涉及到对url编码后的中文进行解码操作。中文转换为url格式from urllib.request import quotex = '角色扮演'print(quote('角色扮演'))输出结果为:%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94将编码后的中文构造成完整url,借助字符串的format方法:url = 'https://www.taptap.c转载 2021-05-26 15:25:58 · 727 阅读 · 0 评论 -
python3 check_hostname requires server_hostname
问题原因:urllib3的1.26.4版本有个bughttps://github.com/urllib3/urllib3/issues/517解决办法1、urllib3降低版本:urllib3==1.25.82、request方法加上verify=False参数response = requests.request(‘GET’, ‘http://xxx.xxxx.com’, verify=False)直接运行会报下面的警告:InsecureRequestWarning: Unverifie原创 2021-04-20 14:55:52 · 9915 阅读 · 1 评论 -
python3下的urlopen、urlencode、cookiejar、build_opener等
python3开始很多包的位置和python2.7以前的不一样了,比如:urllib2合并到了urllib下,urlopen使用时包的位置为urllib.request.urlopen,urlencode使用包位置为urllib.parse.urlencode,cookielib变更为了http.cookiejar如:cookie_jar = cookiejar.CookieJar()#定义有添加cookie 功能的处理器cookie_handler = urllib.request.HTTPCoo原创 2021-04-20 13:52:05 · 349 阅读 · 0 评论
分享