解決思路
1.找到JS代碼
2.在python重寫邏輯,或者python調用js執行的模塊拿到結果
看看在哪里調用了這個js邏輯
點擊方法名 進入
發現調用了新的函數
再次查看visit的調用函數,找到參數的生成方式為
onclick="visit(\'' + autourl[b] + '\')"
發現新的函數
function auto(b) { t = (tim - ts[b]) / 100; tt = t.toString().split('.'); if(tt.length==1) t = t.toString() + '.00'; else if(tt[1].length < 2) t = t.toString() + '0'; if (t > 4) document.getElementById("txt" + b).innerHTML = '<font color=red>連接超時!<\/font>'; else document.getElementById("txt" + b).innerHTML = 'takes ' + t + 's. <a href="javascript:;" class="ok" onclick="visit(\'' + autourl[b] + '\')"> 現在訪問 <\/a>' }
發現經常會需要用到Gword 我們可以解析拿到這個數據
好開始剛
我們拿到了Gword
這個地方有2個解決方案了
- 1是用Python重寫編寫相關邏輯
- 2通過Python調用JS直接實現
我們把需要用到的js代碼復制到一個文件里面
通過Python 執行JS庫 execjs
execjs可以在python中運行javascript代碼
官網:https://pypi.org/project/PyExecJS/
安裝:pip install PyExecJS
可以切換清華源
安裝成功之后在pycharm中引入一下,不出錯誤,表示運行成功
我們對JS進行編譯
import execjs with open('scmor.js', 'r', encoding='utf-8') as f: js = f.read() ctx = execjs.compile(js) # 對JS進行編譯
print(ctx.call('visit','QSQ7XggEHBUhXDxYLwIFHwh4ZRkwXFI0Pw4jGj5ZXlI=')) #給visit 進行傳遞參數 拿到我們的url