python3.8 安装缺少ssl模块 上面Modules/Setup文件中注释的SSL的变量路径要对得上(或者是openssl版本过低)文件中 Modules/Setup去掉注释这五行。当前路径 /usr/local/openssl/但使用requests请求https的网站报错。安装pyhton3.8安装默认不依赖ssl。网上查找资料,确认是缺少ssl模块,可验证。在编译安装python时候安装ssl模块。重新编译安装python。
python 下载文件并打包 根据附件地址去下载附件,然后打包zip,返回打包文件名。1.根据附件url地址request去下载到本地。主要利用request和zip模块。2.zipfile模块打包下载文件。
多进程 报错 TypeError: cannot pickle ‘_thread.lock‘ object 调试websocket对象用协程,线程都无法两者都运行,因此使用多线程,多线程也有报错 TypeError: cannot pickle ‘_thread.lock’ object。可以在ws_utils对象中创建全局变量redis,而不直接传redis对象,而传redis配置(或者直接从配置文件读取)部分。根据晚上查找资料说是在开启进程,会将信息序列化后传递到子进程,报错就是在信息进行序列化时候。猜测是上面ws_utils对象进行序列化问题,比较容易猜测,redis对象序列化存在问题。
python 根据启动参数读取不同配置文件 在本地开发和测试环境上使用的配置不同,不想每次在本地测试修改参数调试,然后git远程提交又修改回来。config.py 使用configparser 模块解析ini文件。所以想实现类似spring 根据不同启动参数实现不同的配置文件读取。2.根据启动参数判断读取哪个配置文件(这里使用ini)就可以读取不同配置文件了。
爬虫状态码412状态 访问"https://www.pudong.gov.cn/zwgk/xqjy-jyjzdgz/2023/104/309147.html",其中请求头也带上足够字段,但是还是访问还是报错412。本质需要在请求头中带上cookies,但是分析相关请求,但是分析下没有找到获取cookies,底层中肯定是存在获取cookies方式,但是比较耗时。浏览器内部主动获取cookies,然后在请求带上,而我们爬虫使用request没法直接获取cookies。selenium,playwright等模拟浏览器访问。
爬虫报错返回403状态 返回403错误码,权限限制,一般来说政府网站不用登入,但也有权限限制,这一般是请求头缺少了。Network -> 选择对应请求-> Heaers -> Request Header。F12开发者模式,请求相关连接,查看请求的请求头复制即可。如上面代码,把User-Agent去掉之后就可解决。也可能是缺少其他的字段。查看其他请求头字段方式。
properties文件写入乱序 Properties 类是继承HashTable 里面的存储hash方式,这种在读取时候是无序的,所以通过原生properties的store方法写文件也是无序的。需要读取properties文件,然后存储到数据库,和文件中,并能支持修改增删。在写入的时候发现写入是无序的,导致写入到文件中不方便查看。例子比较多:如可以参考https://blog.csdn.net/jiangzeyin_/article/details/75036394。所以简单方式,对读入的map进行一个排序,再用文件方式写。
LDAP基础 LDAP的英文全称是Lightweight Directory AccessProtocol [**轻量目录访问协议**],它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。
Rabbitmq 学习 RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ 主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
HTTPS 终于搞懂了 ! * 单向加密:** 不可逆,只要输入的内容一样,输出的密文一定是一样的,有任何修改, 产生的密文都是不同的** 对称加密:** 加密和解密使用同一把密钥,加密解密速度特别快非对称加密: 使用公钥和私钥进行加密和解密,公钥加密私钥解,私钥加密公钥解。加密解密的过程非常慢所谓公钥,就是可以公开给别人的所谓私钥,就是不可以公开给别人,是自己私有保留的。注:以上内容,纯粹是加密的知识,和 https 没有任何关系。下面我们开始讲解 https 的过程。我们先看一个需求。
websocket使用 Websocket是一种用于H5浏览器的实时通讯协议,可以做到数据的实时推送,可适用于广泛的工作环境。客户端和服务端全双工通信。常用场景如:服务端主动发消息个客户端;网页在线客户聊天等。
IDEA 注释模板这样搞 我并不需要这个功能,因此有被勾选该属性。答:首先网上提供的大部分 param 生成函数在无参情况下仍然会生成一行空的 @param,因此我对param 函数的代码进行修改,使得在无参情况下不生成 @param,但是这就要求。这也同时说明了为什么注释模板首行是一个 * 了,因为当我们先输入 /*,然后输入 * + Enter,触发模板,首行正好拼成了 /**,符合 Javadoc 的规范。在我提供的示例模板中,说明了作者和时间,IDEA 支持的所有的模板参数在下方的 Description 中被列出来。