最近在爬蟲時,遇到十分複雜的 js 加密,想著用exejs來執行,但是在執行的時候,提示換行問題,不能成功解析。
使用 nodejs 執行 js, 來獲取我們需要的引數
1、安裝 nodejs
參考:nodejs安裝及環境配置
2、通過python呼叫系統命令傳參
python呼叫nodejs
#匯入 os 模組
import os
#使用popen執行系統命令,並傳參
_cmd = os.popen(r'node demo.js "引數1"'
)#讀取命令執行後的輸出
_res = _cmd.read(
)
nodejs接收引數
中包含ar**陣列,其中我們傳的引數從第3下標開始
var token = process.ar**[2]
var pwd_str = process.ar**[3].replace(/\\n/g,'\n')
var part = process.ar**[4].replace(/\\n/g,'\n')
var pwd = process.ar**[5]
...console.log(result)
console.log輸出的結果就是我們想要的,注意輸出後會有乙個空格,注意用 _res = _res[0:-1]去掉。
ok 成功執行!
HtmlAgilityPack不能解析的解決方法
用htmlagilitypack對下拉列表進行解析時,會得到乙個錯誤提示,說不能有閉合的,實際解析結果也有問題。查了下資料,在 html 中,沒有結束標籤,而在xhtml 中,必須被正確關閉。見 解決方法很簡單,htmlnode.elementsflags.remove option 就可以了,如下...
關於nginx環境不能解析TP路由的問題
關於nginx環境不能解析tp路由的問題 原因 在linux環境下,nginx要解析路由位址,是通過fastcgi解析,而fastcgi由於自身原因,無法正常解析,所以容易出現頁面訪問不存在等情況 解決辦法 首先更改nginx配置檔案nginx.conf,如下 server include fast...
解決expect下命令不能解析萬用字元 的問題
使用expect可以省去手動互動的過程,比如scp的密碼 曾遇到這樣一段 bash指令碼 usr bin expect f set host 192.168.102.1 set user codefor set pass codefor set bookfile home codefor uploa...