欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲如何應(yīng)對Cloudflare郵箱加密

 更新時間:2020年06月24日 09:32:47   作者:桜満三葉  
這篇文章主要介紹了Python爬蟲如何應(yīng)對Cloudflare郵箱加密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

最近寫一個小爬蟲,需要拿到郵箱信息,發(fā)現(xiàn)拿不到,也不是ajax接口。最后查資料發(fā)現(xiàn)是被Cloudflare加密起來了,有加密肯定有解密。

通過大佬http://www.dbjr.com.cn/article/189404.htm得到了加密算法。

參考大佬的原話搞起來就好:

檸之漠然:

這個解密方式就是從那段 js 代碼轉(zhuǎn)換過來的

其中最主要的一句話

for (e = ”, r = ‘0x' + a.substr(0, 2) | 0, n = 2; a.length – n; n += 2) e += ‘%' + (‘0' + (‘0x' + a.substr(n, 2) ^ r).toString(16)).slice( – 2);

前面的 2 位數(shù)字轉(zhuǎn)化成 16 進(jìn)制之后就是秘鑰, 接下來的每兩位字符跟秘鑰異或操作之后轉(zhuǎn)成16進(jìn)制, 然后轉(zhuǎn)換成字符

最后將所有解出來的字符拼成一起, 就得到郵箱 abc@abc.com 了

js 這邊是用 urlencode 的方式

下面是復(fù)現(xiàn)的js解密代碼:

function jiemi(val) {
 for (e = '', r = '0x' + val.substr(0, 2) | 0, n = 2; val.length - n; n += 2) e += '%' + ('0' + ('0x' + val.substr(n, 2) ^ r).toString(16)).slice(-2); return decodeURIComponent(e)
}

然后通過python調(diào)用js完美搞定:

import execjs

def get_js():
 # f = open("./../js/my.js", 'r', encoding='utf-8') # 打開JS文件
 f = open("./jiemi.js", 'r', encoding='utf-8') # 打開JS文件
 line = f.readline()
 htmlstr = ''
 while line:
  htmlstr = htmlstr+line
  line = f.readline()
 return htmlstr


def get_des_psswd(e):
 js_str = get_js()
 ctx = execjs.compile(js_str) #加載JS文件
 return (ctx.call('jiemi', e)) #調(diào)用js方法 第一個參數(shù)是JS的方法名,后面的data和key是js方法的參數(shù)


if __name__ == '__main__':
 print(get_des_psswd(e='30515253705152531e535f5d'))

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列詳解

    Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列詳解

    這篇文章主要介紹了Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊列,詳細(xì)講述了雙端隊列的概念、功能、定義及Python實現(xiàn)與使用雙端隊列的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 詳解K-means算法在Python中的實現(xiàn)

    詳解K-means算法在Python中的實現(xiàn)

    這篇文章主要介紹了詳解K-means算法在Python中的實現(xiàn),具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • Pycharm使用時會出現(xiàn)的問題之cv2無法安裝解決

    Pycharm使用時會出現(xiàn)的問題之cv2無法安裝解決

    這篇文章主要介紹了Pycharm使用時會出現(xiàn)的問題之cv2無法安裝解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • PyCharm連接遠(yuǎn)程服務(wù)器的超級詳細(xì)教程

    PyCharm連接遠(yuǎn)程服務(wù)器的超級詳細(xì)教程

    Pycharm可以與服務(wù)器建立連接,把相應(yīng)的項目同步到服務(wù)器上,下面這篇文章主要給大家介紹了關(guān)于PyCharm連接遠(yuǎn)程服務(wù)器的超級詳細(xì)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • pyqt和pyside開發(fā)圖形化界面

    pyqt和pyside開發(fā)圖形化界面

    選擇PyQt或PySide來開發(fā)圖形界面是因為Python和Qt的跨平臺特性,Qt5甚至支持iOS和Android,并且開發(fā)相同的軟件,Python的效率是極高的,下面看使用示例
    2014-01-01
  • Python與Node.js之間實現(xiàn)通信的JSON數(shù)據(jù)接收發(fā)送

    Python與Node.js之間實現(xiàn)通信的JSON數(shù)據(jù)接收發(fā)送

    Python和Node.js是兩個流行且功能強大的編程語言,它們之間使用JSON格式進(jìn)行數(shù)據(jù)交換是一種高效和靈活的方式,本文將詳細(xì)介紹如何在Python和Node.js之間通過JSON進(jìn)行數(shù)據(jù)通信,包括發(fā)送和接收J(rèn)SON數(shù)據(jù)以及一些常見的交互示例代碼
    2024-01-01
  • python實現(xiàn)圖書借閱系統(tǒng)

    python實現(xiàn)圖書借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)圖書借閱系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python的凈值數(shù)據(jù)接口調(diào)用示例分享

    Python的凈值數(shù)據(jù)接口調(diào)用示例分享

    這篇文章主要介紹了Python的凈值數(shù)據(jù)接口調(diào)用示例分享的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 使用Python進(jìn)行數(shù)據(jù)可視化

    使用Python進(jìn)行數(shù)據(jù)可視化

    本文主要介紹了使用Python進(jìn)行數(shù)據(jù)可視化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python利用PyPDF2快速拆分PDF文檔

    Python利用PyPDF2快速拆分PDF文檔

    很多時候需要拆分PDF,但是大部分需要付費,免費的限制很多,本文就使用Python快速拆分PDF文檔,具有一定的參考價值,感興趣的可以了解一下
    2021-07-07

最新評論