這幾天折騰一個度盤的下載程序。在一個現成程序的基礎上添加我要的功能。主要的目的就是但願實現利用晚上睡覺時間無人管理,自動批量下載。度盤昨天又有變化,趕忙花了幾個小時改了程序,用兩個selenium web driver實現了功能。javascript
還寫了個輔助的油猴腳本,批量建立分享連接。這裏要吐槽一下。尼瑪百度把api的文檔網頁都刪了,不知道調用須要的參數,只好查了些別人寫的工具,找到一些,但還缺一個參數。最後從別人寫的代碼獲得啓發,用console.log(<js函數名>.toString())方式獲得源碼(雖然壓縮過,可是好在沒有混淆,可讀性還不錯),才找到了所需的參數名。vue
度盤對打包下載作了調整,原本簡單的事變得複雜了許多,只好又寫了點程序實現自動批量打包下載(每一個包的大小不能超過300M!)。java
還稍微修改了一下別人寫的插件,以適應自動操做的須要。由此對油猴腳本的編寫稍微增長了些經驗。ios
油猴腳本里的值怎麼傳給win form是個問題,最後利用剪貼板實現了。剪貼板不是很可靠,但一時也沒有更好的辦法(後來發現本身又愚蠢了一回,用wcf輕鬆搞定,固然油猴裏不能用$.ajax,要用GM_xmlhttpRequest以支持跨域請求)。這倒讓我懷念起webBrowser控件裏的window.external方式調用了,惋惜IE瀏覽器實在太不爭氣,無法用。web
如今還剩下的一個問題就是從vue.js裏調用rest wcf服務死活不行,用vue resource沒反應,用axios能傳過去參數,可是沒法獲得返回值,老是出錯,其餘XMLHttpRequest, $.ajax等等都試了,都不行,惟一沒有試的是一個javascript的wcf庫。最後懶得弄了,用後臺java的web api去調用wcf。另外就是在vue.js裏取本地ip地址也沒有調通,也懶得弄,一樣在web api裏解決了。js處理調用本地資源的操做應該是弱項,因此這樣設計應該說也算合理。ajax
無人管理自動操做,難點在於穩定性。由於網絡狀況難料,訪問網站可能超時,打不開,加載不全等各類各樣難以預料的錯誤,程序裏就須要較完善的異常處理機制,各類錯誤出現時都能自動重試,不崩潰,不停住,這樣健壯性才比較好。axios