python爬蟲 攜程 eleven引數

2022-02-09 06:57:42 字數 1910 閱讀 1726

一、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環境缺什麼,報什麼錯,再跟本地瀏覽器進行除錯。過程肯定不是一帆風順,但是解出來的時候,會莫名激動

補充關於eleven下劃線後面的數字,它是根據瀏覽器一些資訊生成數字。然後和前面64位數字進行操作。得出來的。

如果想要真正解出來,還需得繼續分析。

1.18更

2020.04.19更

爬蟲 爬取攜程的航班資訊

功能介紹 輸入起點 終點 時間就能得到攜程上的航班資訊 from prettytable import prettytable import requests import json def xiecheng dcity,acity,date date date 0 4 date 4 6 date ...

python 協程 爬蟲

協程 又叫微執行緒 python的多執行緒沒法利用多核,只能用乙個核去切換,沒辦法實現真正的並行效果。多執行緒的意義,對於io密集型是有意義的。大部分處理都是io的,多執行緒是可以解決大多數情況的。但是解決不了並行的多程序。協程 非搶占式的程式,執行緒和程序都是搶占式的。協程也是要切換的,不過這種切...

攜程被攻擊

微博 范曉東 2015年05月29日07 49分享 摘要 攜程保證,資料和資料庫並未受到此次事件的影響,使用者訂單資料也完整無損。對於為何12小時後才恢復正常,攜程解釋稱 類似攜程這樣的大型 承載著繁多業務,其後台是乙個由soa 面向服務 架構組成的龐大伺服器集群,看似簡單的乙個頁面背後由上千個應用...