- 博客(200)
- 资源 (1)
- 收藏
- 关注
原创 写在2022的小尾巴
似乎每年圣诞节都是一个节点,激活我做红包封面的热情。今年也一样,上周开始琢磨红包封面,试着做了两款异形红包封面:今年又有些不一样:之前都是自掏腰包发封面福利;今年吧,看过了诸多案例后,觉得追求免费红包封面的这波流量其实也可以转化一下,于是这几天做了这么款免费抽红包封面的小程序:设置一定的中奖率,看广告获取抽奖次数,随机抽取红包封面;广告收益用来回补我的红包封面支出和小程序相关费用。小程序贴在这,感...
2023-01-01 00:00:22
304
原创 jadx学习记录01
原计划是先学习 okHttp 和拦截器,再用 Android Studio 来 demo 下,奈何 Android Studio 装完 sync 一直失败,后续换个电脑再试下、一并整理 okHttp 相关知识点。今日任务:用 jadx 分析小红书 6.90 版本的 java 代码,找其中的拦截器相关的痕迹进展:根据请求抓包的路径,在 jadx 反编译 apk 后的代码中定位到相关函数。1.关键词搜索抓包用root过的手机在小红书中搜索关键词,再通过 charles 定位到该请求:关键词搜索的 u
2022-03-09 21:55:44
1068
1
原创 圣诞小礼物
圣诞节,平安夜,好长时间之前就在想要准备点什么,但没想到好的礼物、也没想到好的庆祝方式。一直拖到这周,工作任务突然变得琐碎耗时却价值不高,自己就这么被淹没在工作的时间海洋里。就像一台没有感...
2021-12-25 01:03:52
366
原创 忘记了已保存自动登录的密码,怎么办?
不知你们有没有遇到类似情况:常用的账号密码已经被浏览器保存,每天打开会自动载入并登录;突然有人问起账号密码,一时想不起密码,想切到登录界面查看下密码,但密码输入框无法明文显示、且无法复制密...
2021-11-29 19:38:10
4673
原创 nodejs发邮件nodemailer附件发不出来解决
搜到的很多nodemailer实例,可以正常发出邮件内容,但是附件是空的。可以试试将路径参数 path 改为 filePath,官方给的很多例子都是 path,估计是版本问题导致部分 filePath可用,部分path可用。github issue里也有相关讨论:https://github.com/dwightjack/grunt-nodemailer/issues/4最后附上我这边能用的源码,稍微修改下配置好应该就可以直接发邮件了~const nodeMailer = require("node
2021-10-12 11:10:58
628
原创 Python 实现Mac 屏幕截图
Python 实现Mac 屏幕截图前言pyscreenshotgithub地址Python 安装用例代码截图效果前言最近想做个小玩意,需要在mac端实现屏幕截图,搜了下网上中文资源都比较老旧,于是查了下,发现有些好用的Python库已经支持Mac 以及 Linux 了,特此记录pyscreenshotgithub地址github地址https://github.com/ponty/pyscreenshot/tree/3.0里面有安装和用例说明Python 安装pip install pyscr
2021-10-03 22:45:23
1570
原创 最新自用pdf免费在线去水印全套方案
网上搜一堆,要么最终要充值会员,要么效果实在不咋地结合自己搜索的网上资源,整合了以下免费在线去水印的全套方案,建议收藏:1.解密PDF: https://www.ilovepdf.com/zh-cn/unlock_pdf 如果pdf被加密的话进行此步操作,无加密直接去水印即可2.PDF去水印:https://www.douyacun.com/pdf/remove-watermark 需要关注人家公众号获取个验证码,一个关注不用交钱,还是划算的3.在线修复PDF:上面网站生成的pdf,可能会出现部分复
2021-09-27 15:16:49
45141
12
原创 Python爬虫实战:抓取知乎问题下所有回答
好久不见,工作有点忙...虽然每天都是在写爬虫,也解锁了很多爬虫实战新技能,但由于工作里是用 NodeJS,已经好久没动手写 Python 了。对于解决需求问题来说,无论 Python 还...
2021-09-15 19:29:37
1544
4
原创 Python爬虫实战一:抓取知乎问题下所有回答
代码是最近(2021.09)新写的~需求任务需求:抓取知乎问题下所有回答,包括其作者、作者粉丝数、回答内容、时间、回答的评论数、回答赞同数以及该回答的链接。分析以最近比较引人关注的"大厂间要相互解除屏蔽链接问题"为例,想要拿到回答的相关数据,可以在Chrome浏览器下按F12来分析请求;但借助Charles抓包工具可以更直观地获取相关字段:注意我标注的 Query String 参数中 limit 5 表示每次请求返回5条回答,经测试最多可以改成20;offset 表示从第几个回答开始;而返回
2021-09-15 18:54:10
5621
5
原创 配置 frida 时 Failed to enumerate processes: unable to communicate with remote frida-server 报错
Failed to enumerate processes: unable to communicate with remote frida-server 报错原因:电脑端安装的 frida 版本(可通过 frida --version查看)与 adb 传到手机中的 frida-server-版本号-android-arm64 不一致解决:更新 frida 版本或者 更新传入手机的 frida-server-版本号-android-arm64,二者保持一致即可...
2021-03-31 21:13:55
9777
3
原创 吃一堑长一智,今年我是怎么玩红包封面的
成果汇报去年,微信红包封面的官方制作成本是 10 元/个、100个起订,不许出售封面。我先后订制了600个,成本六千块,因违规出售、所有封面被冻结下架,后续又全面退款,所以整体上是白忙活...
2021-01-29 02:32:02
442
原创 微信之父聊了聊歌曲,腾讯音乐起飞了
许多事情,拼凑到一起看就特别有意思——众所周知,昨晚是 2021 微信公开课,微信之父张小龙发表了《微信十年的产品思考》,分享了一段关于歌曲的想法与尝试:这里龙哥吐槽微信里面听歌的体验不...
2021-01-20 02:47:54
198
原创 小科普:数据爬虫究竟是在干啥
今天有个小目标:用一个网站实例来做展示,给大家科普下数据爬虫工作的过程。不知道最终效果如何,如果你能看到最后,不妨评论下你的感受。了解任务首先,选定的网站是 爱尔眼科官网https:/...
2021-01-15 23:16:28
621
原创 对不起,2020,我把你过得很糟
一个词形容 2020:离谱。后来想了想,种种离谱又都是有迹可循的:最初奇怪的尝鲜招来了疫情,随后不断在人群中扩散,生活节奏开始混乱,各种震惊的消息也被无限放大——好像再离谱的事情放到 2...
2020-12-31 18:13:49
209
原创 Git 更新代码并提交笔记
按照工作中使用的 git 代码顺序,简单记录:1.拉取最新代码到本地git pull2.将本地修改完成的代码添加到暂存区git add .不要漏掉最后的点3.检查文件状态git status -s4.将暂存区代码提交到本地仓库git commit -m "自定义信息"引号中信息自己随便写,标记此次提交的信息5.将本地分支推送到远程分支git push -u origin master这里 origin 是远程分支,master 是本地分支,如果本地分支是用了其他,也可以相
2020-12-14 21:29:16
612
原创 NodeJS 由 header 参数 content-length 导致的爬虫失败
在爬取一系列子页面时,对 header 参数配置一样,但有几个页面却抓取失败,经过一番比对,发现是子页面参数中 content-length 设置不同导致的。解决方案,删去 content-length 参数,添加 “transfer-encoding”: “chunked”具体细节可参考...
2020-12-14 17:10:34
979
原创 如何快速比对表格数据
最近在倒腾一些表格数据,遇到这么个问题:先前下载了一批数据,等再次更新下载时,数目却变少了,我需要快速定位到缺失的条目并探究原因。如图,左侧 10 条数据是先前下载的,右侧少了 1 条(...
2020-12-11 15:13:11
642
原创 NodeJS 爬虫笔记一,熟悉爬虫相关模块
这两天开始接触 NodeJS 爬虫,网上的案例比较笼统和稀疏,也很难能对应起来。工作需要爬虫的任务,我也是先用 Python 写了个能跑的,之后摸索着用 NodeJS 来实现。本想找个案例比对着写下 NodeJS 和 Python 爬虫的区别的,没找到合适的 api 数据接口做展示,索性先略过,之后遇到合适的案例再来分享。今天主要的进展是将 Python 通过 requests 爬虫、pandas 将数据写入 csv 表格文件的过程,通过 NodeJS 做到了大致实现。先是通过 JS 的 request
2020-12-04 20:56:19
377
原创 JavaScript学习笔记三
JavaScript学习笔记三2.JavaScript 引用类型2.1 Object 类型2.2 Array 类型转换方法2.3 Date 类型2.4 RegExp类型2.5 Function 类型2.6 基本包装类型目标是学习 NodeJs 爬虫,所以先来回顾下 JavaScript 的基础知识点。第一阶段先学习 《JavaScript高级程序设计(第3版)》书中的第1,3,4,5,6,7,20,22,24章。本篇笔记主要记录书中知识要点。2.JavaScript 引用类型2.1 Object 类型
2020-12-02 16:08:04
152
原创 JavaScript学习笔记二
JavaScript学习笔记二1.JavaScript 语言基本概念1.5 操作符1.6 语句if 语句do-while 语句while 语句for 语句for-in 语句label 语句break、continue 语句with 语句switch 语句1.7 函数目标是学习 NodeJs 爬虫,所以先来回顾下 JavaScript 的基础知识点。第一阶段先学习 《JavaScript高级程序设计(第3版)》书中的第1,3,4,5,6,7,20,22,24章。本篇笔记主要记录书中知识要点。第一章主要介绍
2020-12-02 14:56:21
354
原创 JavaScript学习笔记一
JavaScript学习笔记一1.JavaScript 语言基本概念1.1 语法注意大小写标识符注释语句关键字保留字变量数据类型目标是学习 NodeJs 爬虫,所以先来回顾下 JavaScript 的基础知识点。第一阶段先学习 《JavaScript高级程序设计(第3版)》书中的第1,3,4,5,6,7,20,22,24章。本篇笔记主要记录书中知识要点。第一章主要介绍 JavaScript 历史和组成部分,不作记录。1.JavaScript 语言基本概念1.1 语法注意大小写变量、函数名和操作符
2020-12-01 21:40:08
166
1
原创 三个月不上班,我都干了些啥
今年年中时,下决心离开香港来北京,身边人都劝不要裸辞,于是便在网上投了几份工作,有家创业公司给了 offer,没多考虑火急火燎就过来了。做了一个多月,不合适,离职了。上班时,我把时间排的...
2020-11-28 01:11:55
783
7
原创 抖音和 TikTok 背后的秘密
最近海外版抖音 TikTok 在大国博弈间可谓起伏不断,今天围绕短视频号运营和内容来聊聊我对短视频的理解。简单说下大致情况:为了怕沉迷上瘾,我常年不刷抖音、快手等;9月15日报名参加了为...
2020-10-20 20:15:30
1035
原创 最硬核中秋祝福
预计这款最硬核的祝福今天会抵达战场,我先给大家打个预防针。你可能在七夕躲过了青蛙的“孤寡”,但这中秋还有长鹅(嫦娥)在等你,祝你——鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅...
2020-10-01 05:18:17
146
原创 初次薅羊毛,收益一千块,简单复盘
0“薅 [hāo]羊毛”这个词,大家都不陌生,早在 1999 年赵本山的春晚小品《昨天今天明天》中白云大妈就已经开始“薅羊毛织毛衣”了。衍生到今天,所谓“薅羊毛”多指我们利用网络上各种...
2020-08-23 23:57:45
3523
原创 Python VTK 交互系统 1 交互模式入门
文章参考自《VTK 交互系统 1 交互模式入门》,按自己理解用 Python 实现相关功能如下:原文中只提及相关函数,为了能直接展示效果,我这引入一个箭头模型,想移除该模式下右键缩放功能,改成右键点击自定义输出“点击右键”信息,代码如下:import vtk# 自定义右键点击事件def right_click(obj, ev): print("点击右键")arrow = vtk.vtkArrowSource()# sphere = vtk.vtkSphereSource()ar
2020-08-17 19:29:01
1521
4
原创 Python 多线程锁
无锁多线程案例import threadingimport timenum = 100def fun_sub(): global num num2 = num time.sleep(0.001) num = num2 - 1if __name__ == '__main__': print('开始测试同步锁 at %s' % time.ctime()) thread_list = [] for thread in range(100)
2020-08-14 18:54:35
277
原创 Python 获取串口通信缓存大小
Python 调用串口通信时,一般都是通过 serial 模块先进行实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)若想获取电脑端串口输入缓存以及输出缓存大小(bytes),可以通过该实例的 in_waiting (当前输入端缓存字节数) 和 out_waiting (当前输出端缓存字节数) 查看。若一次性发送大量请求并收到相应的返回信息,尚未进行读取,则可凭此来查看当前
2020-08-14 14:49:36
5051
原创 我的第一个 10W+
写一篇 10W+ 阅读的文章 和 做一款 10W+ 用户的小程序,你觉得哪个难?不妨参考下目前我运营的公众号和小程序:1. TTTEED 公众号:自 2019 年 1月起运营,内容包含 ...
2020-08-14 01:06:26
322
原创 Python @property 基本用法和缺点
本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 31 条:用描述符来改写需要复用的 @property 方法@property 基本用法@property 修饰器,需要在类中先对某属性同名方法进行修饰器附加,再以 @属性名.setter 的修饰器对该方法进行改写:class Homework(object): def __init__(self): self._grade = 0 @property def
2020-08-13 10:45:27
475
原创 ODrive 串口通信入门指南
ODrive 官方入门指南中,采用的是 USB 连接控制模式(中文翻译版本链接)使用的是 Native Protocol。当我们需要尝试串口通信实现时,需要专程 ASCII 协议来进行串口通信实现相关的命令,结合着入门指南以及 ODrive 中的相关属性方法参数,将流程中用到的相关方法整理如下:import serialimport timeted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)ted.writ
2020-08-12 20:04:13
3325
原创 ODrive ASCII 协议串口通信命令整理
ODrive ASCII 协议串口通信命令整理将 USB to TTL 插入到电脑 USB 1470 端口,识别为 tty.wchusbserial1470,设置波特率,通过 serial 模块实例化:import serialted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)请求信息状态指令格式:f motor回复格式:pos vel注:f 表示请求返回信息;motor 表示电机编号,0 或
2020-08-12 19:55:33
2459
原创 Python @property 实时计算数值属性进行属性重构
本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 30 条:考虑用 @property 来代替属性重构。首先定义个水桶类,需要向其中注入水才有限额可以消耗使用,采用时间模块控制操作顺序:from datetime import timedelta, datetimeclass Bucket(object): def __init__(self, period): self.period_delta = timedelta(
2020-08-12 12:09:59
285
原创 USB to TTL python 本地测试串口通信
手头上有个 USB to TTL CH340 型号的,想在本地用 python 测试下串口通信。硬件准备首先是 USB to TTL 元件,找个跳线帽将 TXD 和 RXD 针脚相连,插到电脑上下载驱动下载对应电脑系统的 CH340 驱动:https://sparks.gogo.co.nz/ch340.html设备搜寻打开终端/命令行,输入以下命令来搜寻设备:ls /dev/tty.wchusbserial*你将得到如下格式的结果,复制下备用/dev/tty.wchusbserial
2020-08-11 11:42:04
1984
1
原创 Python @property 用法
本文整理自《Effective Python 编写高质量 Python 代码的 59 个有效方法》第 29 条:用纯属性取代 get 和 set 方法。Python 类 public 属性首先,python 类中的 public 属性可以实现 setter 和 getter 等工具方法功能,动态修改、获取类中的属性:class Resistor(object): def __init__(self, ohms): self.ohms = ohms self.vo
2020-08-11 10:25:41
378
原创 树莓派 4 UART 多串口配置通信
相比树莓派零、1、2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置参考。UART 配置1. 展示所有串口命令$ dtoverlay -a | grep uart展示 pi4 中所有串口pi@raspberrypi:~ $ dtoverlay -a | grep uart midi-uart0 midi-uart1 miniuart-bt uart0
2020-08-10 17:00:39
16419
16
原创 PyQt5 布局管理器学习
0 知识点思维导图1. 手动布局代码,三个横向标签竖直排列:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("布局管理的学习") self.resize(500, 500) self.setup_ui() def setup_ui(self):
2020-08-07 18:42:31
383
原创 PyQt5 下拉列表控件案例代码
描述,第一个下拉菜单代表省,选择后控制第二个城市的下拉菜单,每个城市有相应编码,打印选中的城市编码:代码如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 综合案例") self.resize(500, 500) self.connected =
2020-08-06 18:49:37
714
原创 PyQt5 QComboBox 学习笔记
PyQt5 QComboBox 下拉框学习笔记,按代码一步步来1. 构造函数QComboBox 的构造函数是 QComboBox(parent: QWidget = None),应用到代码中如下:from PyQt5.Qt import *class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QComboBox 的学习") sel
2020-08-05 19:07:35
1938
原创 PyQt5 QComboBox setMaxVisibleItems 不生效
QComboBox 中可以通过 setMaxCount(self, int) 来设置下拉框总条目数,以及 setMaxVisibleItems(self, int) 设置最大可显示的条目数、即一屏显示的条目是,多余的靠下拉继续展示但实际操作时发现 setMaxVisibleItems(self, int) 这个并不能生效,原因是该方法需要配合将 QComboBox 设置为可编辑模式:cb = QComboBox(self)# 设定最大条目个数cb.setMaxCount(5)# 设置最大显示个数
2020-08-05 17:53:23
1030
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人