記第一次破解js加密代碼


 

首先,我要爬的是這個網站:http://www.66ip.cn/nm.html,我想做個直接調用網站的接口獲取代理的爬蟲

 

 

這個接口看上去似乎很簡單,直接輸入需要的代理條件后,點擊提取即可

點擊提取后就是一個個ip了,

廢話不多說,按f12點開, 

 

 

發現需要兩個cookie值,不知道從哪來,刪掉cookie后,刷新頁面再看看。 

同樣有這兩個cookie,不過是新值,並且出了jquery.js沒別的文件了。奇怪了,cookie怎么出來的,不過可以注意到被重定向了。

所以,把f12的net work下的 preserve log 勾選(新手才學到的),這樣就可以看到所有的包了

 

三、

果然找到一個cookie,但是還有一個cookie值呢?查看這個521報文看不到內容,使用postman試試(這里一定要注意,今天被坑了很久,postman是依托於chrome的,chrome出於安全考慮,限制了postman的cookie功能,需要下載插件,點擊一下會跳轉到谷歌應用商店postman interceptor,然后在postman中打開改插件即可。還有要注意的是,chrome上的cookie,是會被postman使用的,記得刪掉。下圖的postman interceptor點開了)

 

 四,然后發現果然執行了一段js代碼,拿去格式化,簡單修改,使用nodejs運行了一下,其實就是一句,document.cookies='***'的代碼

 

 五,這個還算好做,分離出來就行,然后發現,誒,每次沒cookie的請求都是不同的js代碼,干脆就提取出js代碼,然后,替換部分js代碼, 即可獲取_ydclearance

@staticmethod
    def get_66ip_cookies(url):
        """
        66ip的加密cookie破解
        :param self:
        :param url:
        :return:
        """
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                                 ' Chrome/68.0.3440.106 Safari/537.36'}
        res = requests.get(url, headers=headers)
        yd_cookie = res.cookies['yd_cookie']
        groups = re.search('<script language="javascript"> window.onload=setTimeout\("(.*?)", 200\); (.*?)</script>',
                           res.text)
        x = groups.group(1)
        y = groups.group(2)
        y = y.replace('eval("qo=eval;qo(po);");', 'result = /_ydclearance=(.*?);/.exec(po)[1]; return result;')
        jsfunc = execjs.compile(y)
        _ydclearance = jsfunc.call(x[:2], re.findall('[0-9]+', x)[0])
        return yd_cookie, _ydclearance

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM