写程序小记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处理调用本地资源的操作应该是弱项,所以这样设计应该说也算合理。

无人管理自动操作,难点在于稳定性。因为网络情况难料,访问网站可能超时,打不开,加载不全等各种各样难以预料的错误,程序里就需要较完善的异常处理机制,各种错误出现时都能自动重试,不崩溃,不停住,这样健壮性才比较好。

posted @ 2018-10-18 00:15  平静寄居者  阅读(105)  评论(0编辑  收藏  举报