自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

锅炉房刘大爷的博客

刘大爷的烧锅炉日常

  • 博客(92)
  • 收藏
  • 关注

原创 整理

1.字典排序按照value值大小排序>>> d = {'75': '8', '12': '9', '14': '3', '88': '14', '60': '14', '61': '13', '62': '8', '63': '9', '64': '10', '65': '9', '7': '13', '9': '11', '8': '11'}>>>...

2018-05-29 15:55:18 312

原创 Mac M2机器使用python3的lxml报错symbol not found in flat namespace

先用conda虚拟环境中的pip卸载本地lxml,然后用conda安装。

2024-03-06 15:17:28 484

原创 go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘

win10使用vscode运行go代码时候报的错,如果是使用终端不会报错,可以正常运行,但是如果使用vscode的Run就会报下面的错误。

2024-02-18 17:27:20 251 1

原创 windows环境下使用python解压大文件

这里遇见的是在windows环境下解压gz文件,遇见较大文件时,占用内存过大导致解压失败,这里推荐一个解决办法,调用WinRAR软件来解压压缩文件。目前适用一次只解压一个文件,没试过并发解压不同文件夹的不同压缩文件。

2023-04-18 17:28:03 293 1

原创 pyppeteer获取控制的chromium进程id

此时获取的chromium进程id,还会有自己的子进程,需要再调用一次上面的函数,这样就获取当前pyppeteer服务所涉及到的所有进程id了。实际是先获取当前的python进程id,这个就很简单了。

2023-04-18 10:38:13 264

原创 golang安装新的模块

新手安装go插件的时候,会报类似错误。

2023-04-17 16:00:17 460

原创 playwright install chromium报错:Failed to install browsers

playwright

2022-12-04 00:21:25 3818

原创 python3识别中文乱码

乱码识别

2022-08-31 15:49:07 1221

原创 pip3使用国内源安装python模块

使用清华源:pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simplepip3 install -r req.txt -i https://pypi.tuna.tsinghua.edu.cn/simple使用豆瓣源:pip3 install boto-i https://pypi.douban.com/simple

2022-03-29 11:57:20 1048

原创 windows下将原文件夹和原文件改名后复制到更改后的文件夹下

def change(): old_main_path = r'E:\test1' new_main_path = r'E:\test2' for root, dirs, files in os.walk(old_main_path): for f in files: # 获取完整路径 f_path = os.path.join(root, f) # 进行替换 new_p.

2021-11-16 13:52:18 337

原创 python3将网页保存为pdf

主要借助pdfkit库实现,而且需要下载wkhtmltopdf.exe,然后才能正常使用:import pdfkitwk_path = r'D:\wkhtmltopdf\bin\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf=wk_path)pdfkit.from_url(url, dest_path, configuration=config)...

2021-10-27 15:43:22 606

原创 python3处理乱码

有时通过网络请求返回的数据是乱码,通杀解决方式:import ftfyprint(ftfy.fix_text(s))

2021-10-15 18:02:59 232

原创 pyppeteer保存验证码截图

一般的验证码图片能直接看到,使用page.screenshot方法就能保存该截图:await page.screenshot({'path': IMG_PATH})但有一些特殊情况,需要鼠标放到指定位置后,验证码图片才能显示出来。此时,可以考虑这种方式保存验证码图片。pyppeteer提供监听机制,当你请求一个链接时,同时会加载多种资源,此时可以通过监听不同资源的链接来获取不同资源的response,验证码肯定也是通过http请求得来的,所以就可以通过监听验证码的请求来保存验证码。asy

2021-10-11 18:52:48 1046

原创 Python3将中文转换成对应的\uxxxx表示

>>> s = '开始'>>> print(s)开始>>> print(s.encode('unicode-escape'))b'\\u5f00\\u59cb'>>> print(str(s.encode('unicode-escape'), encoding='utf-8'))\u5f00\u59cb参考:牛啊!

2021-09-29 18:34:44 598

原创 requests使用socks代理

需要先安装PySocks包,pip安装即可使用普通的socks代理:socks.set_default_proxy(socks.SOCKS5, '代理ip', int('代理端口'))socket.socket = socks.socksocketrequests.get(url)使用带有账号密码的代理:socks.set_default_proxy(socks.SOCKS5, '代理ip', int('代理端口'), True, '账号', '密码')socket.socket

2021-08-09 14:41:32 2283

原创 滑块缺口识别

带缺口的图片长这样:缺口图片:识别过程:# -*- coding: utf-8 -*-import cv2from matplotlib import pyplot as plt# 带有缺口的图片path1 = r"jietu_1.png"# 模板图片path2 = r"jietu_2.png"def pic2gray(pic_path, new_path=''): # 转灰度图 pic_path_rgb = cv2.imread(pic_path).

2021-08-04 17:05:36 964

原创 python elasticsearch批量同步数据

actions = []# 更新某条数据,doc内是需要更新的字段action = { "_op_type": "update", "_index": "index_name", "_type": "_doc", "_id": 'doc_id', "doc": { "name": 'lilei', "age": 10 }}actions.append(action)# 插入新数据,_source里是插入的数据的所有字.

2021-08-03 11:20:49 488

原创 python解析pdf文件

加载pdf文件,获取pdf的每一页对象:import pdfplumberpath = ""with pdfplumber.open(path) as pdf_obj: pages = pdf_obj.pages # 获取页面的宽高 p_width = page.width p_height = page.height获取当页的所有文本:text = page.extract_text()如果未抽取到文本对象,text是None对象。使用该方法,表格中

2021-07-05 17:10:05 1554

原创 从mysql5.7将数据推送到es7

最近在鼓捣将mysql数据推送到es中,看了常见的一些方法,例如用binlog同步数据的方式,但是原数据加在一起能有好几个T,所以一开始就没有启用binlog,最后没办法,还是通过去mysql查询的方式,一点点从mysql同步到es中。下面简单记录一下整个同步过程中做了哪些工作。首先是处理源文件,如果源文件是压缩文件,则需要解压tar -xzvf a.tgz或者批量解压当前文件夹下的压缩文件find -maxdepth 1 -name "*.tgz"|xargs -i tar xzvf {}

2021-05-26 11:04:41 273 1

原创 python解析大json文件

当json文件过大时,使用内置的json模块解析会报错,后发现ijson模块可以很好的解决这个问题:参考:Python解析超大的json数据(GB级别)使用过程中,还发现使用ijson,能较好的发现json文件是否有问题。例如,使用ijson读取一个json文件后,如果该json文件本身有问题,它会显示的报错错误:Traceback (most recent call last): File "E:/test/work/myspider/test/read_json.py", line 2

2021-04-22 17:13:38 3747 6

原创 使用pymysql报错:pymysql.err.InternalError: Packet sequence number wrong - got 5 expected 1

环境:Python 3.8.5在使用pymysql去数据库查询数据时,出现了如下错误:Exception ignored in: <function MysqlPoolClient.__del__ at 0x000001107810DC10>Traceback (most recent call last): File "E:\test\work\myspider\utils\mysql_pool.py", line 39, in __del__ self.dispose

2021-04-20 19:15:00 10449 1

转载 centos7安装redis

一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装[root@localhost local]# yum install -y gcc二、下载并解压安装包[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz[root@localhost local]# tar -zxvf r...

2021-04-12 16:34:25 80

原创 采集返回类似“&#xxxxx;”的数据如何处理

今天发现某网站源码返回的正文是这样的一开始以为&#x6765;是做了什么加密,后来发现只是把字符串对应的Unicode编码进行了简单处理,解决办法如下:def convert(s): s = s.strip('&#x;') # 去掉多余字符 s = r'\u' + s # 拼接成Unicode字符 return s.encode().decode('unicode_escape')s = '&#x6765;&am

2021-04-07 15:29:57 342 2

原创 centos7安装python3.8.5

一 卸载如果机器上有其他版本的python,可以选择先卸载,例如原本有python3.6,卸载:# 卸载pyhton3rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps # 删除所有残余文件whereis python3 |xargs rm -frv# 确认现有的python(一般还有python2)whereis python二 安装python3.8.51.安装相关依赖yum install zlib-dev

2021-03-24 15:30:29 555 1

原创 python3在本地安装自己开发的模块——windows篇

编写setup.py文件# -*- coding: utf-8 -*-from os.path import dirname, joinfrom setuptools import find_packages, setupdef parse_requirements(filename): lineiter = (line.strip() for line in open(filename)) return [line for line in lineiter if line

2021-03-16 11:39:41 352 1

原创 python3加载字符串形式的python源代码

关于python动态加载模块,查到的大部分资料都是通过importlib加载本地python文件为新的模块。现在的需求是,将写好的python代码存储到mysql数据库,然后通过web api读取出该python代码,但是不进行保存操作,而是想要直接加载该python代码为新的模块使用。实现方式:def test(): import types code = """class Test(object): def add(self, a, b): ret

2021-03-12 19:34:35 336

原创 环境安装

压缩文件夹: tar -czvf proxy_pool.tgz proxy_pool/解压: tar -xzvf proxy_pool.tgz 跳板机rz上传稍大文 rz -e和sz -e安装pip: yum install python-pip -y pip install --upgrade pip安装screen: yum install screen -y安装MySQL-python: yum install MySQL-pyth...

2021-02-18 11:14:03 101

原创 requests请求时,遇到的Accept-Encoding问题

在使用requests请求链接的时候,发现请求得到的内容总是一堆乱码:此时请求的headers里的Accept-Encoding是这样写的: headers = { 'Accept-Encoding': 'gzip, deflate', 'User-Agent': str('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0') }查看目标

2021-01-27 19:50:05 1816

转载 python请求multipart/form-data数据

今天遇见发送post请求时,post data是类似下面的数据:解决办法,参考:python拼接multipart/form-data类型post请求格式

2021-01-27 18:50:34 664

原创 记一次好笑的逆向过程

为什么说是好笑,看到最后就明白了。目标链接:url打xhr断点并发起请求:查看调用栈,发现了发起request的位置:向上查看代码,发现了这个东西:知道ajax请求里的signature参数和rs参数是从哪里来的。看一下这部分代码,可以知道构造url时的u,d,t来自哪里u,d,t三个参数里,u和d很容易理解,主要是t参数如何获取,所以在这里重新开始打断点。s其实是一个函数,[u, d, l, window.couid, e, c, h["type" + e]].so

2021-01-14 19:15:21 250

原创 xb文件备还原

今天需要将windows server上比较大的文件传到linux服务器上,最后发现可以使用winscp进行大文件的传输。下载地址:传送门

2020-12-01 14:39:19 2609

原创 给谷歌浏览器添加插件

有时候可能需要给谷歌浏览器安装一些谷歌的插件,如果通过下载的方式就必须得翻墙;另外一种方式是,直接使用下载下来的插件安装,例如该插件:EditThisCookie.crx点击这里下载该插件,提取码:mab2一般的方式是,直接将该插件拖到Chrome,有的插件是可以直接安装成功的,有的可能因为版本问题出现“程序包无效”的错误:此时的解决方法是,将插件扩展名由crx改为zip,然后解压该压缩包;打开Chrome的扩展程序界面,右上角打开“开发这模式”,然后点击“加载已解压的扩展程序”,这样就可.

2020-11-27 16:52:40 365

原创 Packet Capture

今天需要抓一个app的数据包,发现想要的数据包用fiddler抓不到,后发现该app,需要安装在安卓客户端使用。下载地址:click它有一个好处是,可以指定抓某个app的包:选好一个app后,浏览该app,返回Packet Capture就能看到一系列请求包,大部分http包是可以抓到的。...

2020-11-09 17:30:28 2238 1

原创 python3 rsa加密

加密首先要有public key,如果加密后的内容用来做http请求,可能还需要对其quote一下。def test(): public_key = """-----BEGIN PUBLIC KEY-----*******MIICIjANBgkqhkiG9w*******-----END PUBLIC KEY-----""" import rsa import base64 from urllib import parse h = '{"type":"ca

2020-11-05 20:13:17 509 2

原创 记一次js逆向过程

目标:sec通过抓包可以知道,列表页内容来自:一共请求了两次这个链接,通过截图可知道,第一次请求什么都没拿到,第二次请求才拿到数据。看一下第二次请求的参数,可以知道,主要是post的data中加了参数:code=***,所以现在主要问题就是找到这一串参数怎么来的。因为在其他请求中找不到同样的参数内容,所以考虑基本就是js加载出来的,所以开始打断点调试。根据链接打一个xhr断点:打断点调试这方面我也是新手,没办法,只能从右面的堆栈开始找,看能不能找到有用的东西。最后发现了这么个东西,感觉是发送请求

2020-11-05 20:04:58 447

原创 windows通过python脚本重启本地redis

1.检查redis server是否运行正常def check_server(): conn = redis.StrictRedis( host="127.0.0.1", port=6379, db=0, socket_timeout=5, # 发出命令接收响应的时间不能超过此参数设置时间 socket_connect_timeout=5 # 建立连接超时时间 ) flag

2020-10-23 15:23:32 433 3

原创 selenium用过的方法

通过xpath获取某个element:img_element = driver.find_element_by_xpath('//img[@class="a-image-img"]')获取element的某个属性值:img_url = img_element.get_attribute('data-src')获取element的文本内容:content = img_element.text...

2020-10-14 11:40:21 192

原创 如何使用selenium一直拖动浏览器的滚动条

现在遇见一个问题,需要通过selenium不断向下刷新页面获取新数据。之前看到的一些方法,主要就是让selenium执行js:js = "var q=document.documentElement.scrollTop=100000"driver.execute_script(js)但是发现有的网站,滚动几次之后就不能继续刷新了,具体原因还未找到,可能和服务器响应过慢有关。后来找到如下方法,也是执行js,只不过对象不同。ac = driver.find_element_by_xpath

2020-10-13 16:33:11 720

原创 windows环境下,python不阻塞当前进程来启动其他进程

windows环境下,start命令可以启动其他进程,且不会阻塞当前进程import oscmd = 'start python E:\test\test.py'os.system(cmd)根据进程id关闭进程:cmd = 'taskkill /pid ' + str(pid) + ' /f'os.system(cmd)获取外网ip:ip = requests.get('http://ifconfig.me/ip', timeout=3).text.strip()获取内网

2020-09-08 15:57:17 662

原创 Cannot uninstall 'numpy'问题

今天不知道做了什么骚操作,导致import cv2的时候突然报错:ImportError: numpy.core.multiarray failed to import应该是numpy安装出错了,所以执行pip uninstallnumpy,貌似成功卸载了,然后重新pip install numpy发现还是不行,会报错:Found existing installation: num...

2020-05-06 22:41:18 10164 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除