写程序小记10.17
这几天折腾一个度盘的下载程序。在一个现成程序的基础上添加我要的功能。主要的目的就是希望实现利用晚上睡觉时间无人管理,自动批量下载。度盘昨天又有变化,赶紧花了几个小时改了程序,用两个selenium web driver实现了功能。
还写了个辅助的油猴脚本,批量创建分享链接。这里要吐槽一下。尼玛百度把api的文档网页都删了,不知道调用需要的参数,只好查了些别人写的工具,找到一些,但还缺一个参数。最后从别人写的代码得到启发,用console.log(<js函数名>.toString())方式得到源码(虽然压缩过,但是好在没有混淆,可读性还不错),才找到了所需的参数名。
度盘对打包下载做了调整,本来简单的事变得复杂了许多,只好又写了点程序实现自动批量打包下载(每个包的大小不能超过300M!)。
还稍微修改了一下别人写的插件,以适应自动操作的需要。由此对油猴脚本的编写稍微增加了些经验。
油猴脚本里的值怎么传给win form是个问题,最后利用剪贴板实现了。剪贴板不是很可靠,但一时也没有更好的办法(后来发现自己又愚蠢了一回,用wcf轻松搞定,当然油猴里不能用$.ajax,要用GM_xmlhttpRequest以支持跨域请求)。这倒让我怀念起webBrowser控件里的window.external方式调用了,可惜IE浏览器实在太不争气,没法用。
现在还剩下的一个问题就是从vue.js里调用rest wcf服务死活不行,用vue resource没反应,用axios能传过去参数,但是无法得到返回值,总是出错,其他XMLHttpRequest, $.ajax等等都试了,都不行,唯一没有试的是一个javascript的wcf库。最后懒得弄了,用后台java的web api去调用wcf。另外就是在vue.js里取本地ip地址也没有调通,也懒得弄,同样在web api里解决了。js处理调用本地资源的操作应该是弱项,所以这样设计应该说也算合理。
无人管理自动操作,难点在于稳定性。因为网络情况难料,访问网站可能超时,打不开,加载不全等各种各样难以预料的错误,程序里就需要较完善的异常处理机制,各种错误出现时都能自动重试,不崩溃,不停住,这样健壮性才比较好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律