- 博客(7)
- 收藏
- 关注
原创 loguru 日志中心实现
我们为module1.log设置了只有record["extra"]["name"] == "module1"的才能记录,并且为logger1绑定了属性name="module1",因此只有logger1才能写入module1.log文件。现在,我想在log.py中配置全部的logger,module1使用一个logger1,module2使用一个logger2,并且他们分别写入各自的log文件中。控制台已经打印日志了,可以看到,info,waring日志有预设的颜色。,例如日志输出格式等等。
2025-06-01 14:31:55
383
原创 UV缓存机制探究
(这是后来实验的虚拟环境目录大小,我add了torch和transformers等一些库,我使用的wsl可以直接使用windows资源管理器查看,使用du命令查看也是一样大小)我刚开始这么做了,进入每个文件夹,uv init,uv venv,uv pip install requirements.txt一气呵成。所以以后不要担心项目”看起来“非常大了,我们使用的是uv的全局缓存,相同的包实际在系统上只有一个。这是testuv2安装完成的数据,可以看到除了文件夹,文件的硬链接+1了。
2025-05-07 21:40:58
522
原创 自动化点击跳转空白页溯源
这是selenium+webdriver的经典特征,如果使用的是浏览器驱动操控浏览器的方式,这个js变量会被赋值True,从而被检测,由于我使用的DrissionPage是基于CDP的,不会被检测。那么执行上面的脚本,观察参数,发现,模拟点击的isTrusted是True,属于信任点击不会被检测,但是两个recorder的值却并不是0,前面那个是2,后面是1,于是就触发了跳转空白页。至此,真相大白,我们的猜想是正确的,确实是获取计算属性和滑动视口可见动作被监控记录了。我们先排查js点击是为什么失败。
2025-04-04 17:08:44
970
原创 CDP初识
Chrome Devtools Protocol, 就是 Chrome 浏览器用于开发调试的协议,Chrome 开发者工具底层就是调用的该协议,所以 chrome 开发者工具能干的事都是基于 CDP 的接口,就能想到 CDP 能干的事有多少了。事实上 CDP 有些功能在 Chrome 开发者工具并没有体现出来,也就是说 CDP 还更强大。简单来说,CDP 就是用来控制 Chrome 的方方面面。事实上 CDP 能控制的并不局限于 Chrome 浏览器,任何实现了该协议的工具都能被控制。
2025-04-04 11:05:11
1021
原创 图灵爬虫题自动化解法
看到检测了一些自动化特征,比如navigator.webdriver,插件数量,计算属性调用等等,使用selenium+webdriver肯定是要被检测的(可以使用一些隐藏指纹的工具)。我使用的自动化工具是基于cdp的自动化工具Drissionpage,类似的工具有很多,puppeteer也是基于cdp的js封装。最关键的一步是将点击替换为直接执行js代码(点击被检测了会跳转空白页),我们要点击的元素绑定的事件其实就是我们执行的js代码,loadPage()函数。
2025-04-03 23:00:17
178
原创 静态博客图片处理最佳实践
搭建个人博客不是一个很难的操作,也有不止一种的解决方案。真正难的是持续总结所学并更新博客。希望各位持之以恒,坚持才是王道。
2024-03-26 21:32:06
835
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人