攜程-eleven分析
一、eleven的位置
通過對旁邊堆疊的分析,它是在另一個js檔案中呼叫的,那個js檔案是一個自呼叫的函式,所以我們可以直接copy下來,用瀏覽器執行看看
執行運行是會報錯的, undefind沒有call屬性
經過除錯發現,報錯這里是想呼叫window下面的某一個函式,也就是這個物件屬性key為29對應的值
所以我們需要將這個函式添加進去
我們再運行一次,這樣就不會報錯了
雖說能夠成功運行,不報錯,但是本地生成的eleven的值是跟攜程官網生成的eleven是不一樣的
三、解決方案
這段js代碼,肯定是對某一些做了判斷,我當時猜想過cookie,因為我就是在瀏覽器中運行,瀏覽器的一些標識肯定都是一樣,又區別的地方應該就是cookie吧,我就就一步一步的除錯這這一大段js代碼,講真確實讓人看得頭疼
剛開始看確實沒多少耐心,點的也很快,也沒什么技巧,
有一個老哥說,他能在瀏覽器執行那段js代碼,并且與攜程官網的引數能對上,他是新建一個視窗瀏覽器,通過控制臺將js代碼copy,再進行呼叫,我試了下真的可以,我就很奇怪了,那就排除跟cookie有關了,
后面我還是繼續除錯那段js代碼(我是在攜程網站進行除錯的),發現那段js呼叫了 3 這個位置的函式,是一個 require 函式,每次呼叫都拋了例外,它有例外捕捉的代碼,所以不會崩掉,
我再除錯著本地代碼,發現我是沒有這個函式的,我再去新建一個瀏覽器視窗,window.require輸出為一個函式,這下終于知道哪里不對了
所以我只需要在 3 那個位置添加這個函式就行了,上面也說過,攜程網站它呼叫這個函式都是拋例外的,所以我們這樣寫就好了,
為了防止巧合,我試了很多次,本地和線上生成的eleven都只差一位,意思是說他肯定還對某一項做了檢測,
四、補充
需要注意的幾個函式,不是說其他函式不重要,也很重要,但這個比較關鍵,
五、node環境
再弄node環境之前,必要瀏覽器執行后的eleven要和攜程網的對得上,node環境缺什么,報什么錯,再跟本地瀏覽器進行除錯,程序肯定不是一帆風順,但是解出來的時候,會莫名激動
需要源代碼或者是了解更多內容點擊這里獲取
此文轉載文,著作權歸作者所有,如有侵權聯系小編洗掉!
原文地址:https://www.tuicool.com/articles/YZVJ73J
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158097.html
標籤:Python
上一篇:Python爬取愛徒網素材下載鏈接,點擊鏈接即可下載
下一篇:乾坤機器人新人入群歡迎資訊插件
