百度搜索引擎作為當(dāng)年對標(biāo)谷歌搜索的頭號選手,隨著谷歌在中國被墻,成為中國最大搜索引擎的愿望早已實(shí)現(xiàn)。無論是近來管理上的疏漏還是所謂的利欲熏心,百度近兩年被口誅筆伐實(shí)屬應(yīng)該。這里就是啰嗦兩句,而作為單個產(chǎn)品百度指數(shù)還是相當(dāng)成熟和優(yōu)秀的產(chǎn)品,雖然也有對標(biāo)Google Trends的嫌疑,但是對比而言,能夠開放具體的PV值(page view頁面瀏覽量)也算是一大優(yōu)點(diǎn)。 好的,作為數(shù)據(jù)愛好者,最喜歡的是什么? 數(shù)據(jù)! 圖表! 被數(shù)據(jù)和圖表驚訝到的快感! 那么,百度指數(shù)就是最入門的數(shù)據(jù)來源了,兩個字,搞點(diǎn)數(shù)據(jù),入門爬蟲,百度指數(shù)開始就是簡單。 爬蟲的代碼網(wǎng)上一搜一堆,懶人可以點(diǎn)這里。 細(xì)節(jié)我這里就不討論了,關(guān)鍵是數(shù)據(jù)獲取之后有個解密的過程,下面已經(jīng)把相關(guān)的內(nèi)容摘出來了。 # python3 # 百度指數(shù)API # 發(fā)送請求 含cookies # http://index.baidu.com/api/FeedSearchApi/getFeedIndex?word=nba&area=0&days=30 # 返回里的數(shù)據(jù) encrypt_data = "E40E.Xb..0EX.bE4E444b...7XHb.HHPP7b.T.P40bE.P4.Eb.PT7TEb.404EXbEXT777b.ET4PEb4P7TH0b.H.XE4b.070H.bETTH.0b4.HX77bEX0P4Pb4H40.Pb.XTR0Hb4774H0bE04ER0b.TRTTTb477T4Pb.P0HHEb4TR.HRb.H4H00b.X4P7Eb4H4.R4b.E7HP0b4HPETH" uniqid = "d589f0ee4b8d229a760fd36ea8cfc4b9" # 發(fā)送請求 # http://index.baidu.com/Interface/ptbk?uniqid=d589f0ee4b8d229a760fd36ea8cfc4b9 # 返回里的數(shù)據(jù) key = "7bPMDHXET.04FjR6,9.%8145302-+7"
def decrypt_func(key, data): """ 數(shù)據(jù)解密方法 """ n = {} s = [] for o in range(len(key)//2): n[key[o]] = key[len(key)//2 + o] print(n) for r in range(len(data)): s.append(n[data[r]]) print(s) return ''.join(s).split(',')
decrypt_func(key,encrypt_data) # 以下為輸出結(jié)果 {'7': '6', 'b': ',', 'P': '9', 'M': '.', 'D': '%', 'H': '8', 'X': '1', 'E': '4', 'T': '5', '.': '3', '0': '0', '4': '2', 'F': '-', 'j': '+', 'R': '7'} ['4', '2', '0', '4', '3', '1', ',', '3', '3', '0', '4', '1', '3', ',', '4', '2', '4', '2', '2', '2', ',', '3', '3', '3', '6', '1', '8', ',', '3', '8', '8', '9', '9', '6', ',', '3', '5', '3', '9', '2', '0', ',', '4', '3', '9', '2', '3', '4', ',', '3', '9', '5', '6', '5', '4', ',', '3', '2', '0', '2', '4', '1', ',', '4', '1', '5', '6', '6', '6', ',', '3', '4', '5', '2', '9', '4', ',', '2', '9', '6', '5', '8', '0', ',', '3', '8', '3', '1', '4', '2', ',', '3', '0', '6', '0', '8', '3', ',', '4', '5', '5', '8', '3', '0', ',', '2', '3', '8', '1', '6', '6', ',', '4', '1', '0', '9', '2', '9', ',', '2', '8', '2', '0', '3', '9', ',', '3', '1', '5', '7', '0', '8', ',', '2', '6', '6', '2', '8', '0', ',', '4', '0', '2', '4', '7', '0', ',', '3', '5', '7', '5', '5', '5', ',', '2', '6', '6', '5', '2', '9', ',', '3', '9', '0', '8', '8', '4', ',', '2', '5', '7', '3', '8', '7', ',', '3', '8', '2', '8', '0', '0', ',', '3', '1', '2', '9', '6', '4', ',', '2', '8', '2', '3', '7', '2', ',', '3', '4', '6', '8', '9', '0', ',', '2', '8', '9', '4', '5', '8'] ['420431', '330413', '424222', '333618', '388996', '353920', '439234', '395654', '320241', '415666', '345294', '296580', '383142', '306083', '455830', '238166', '410929', '282039', '315708', '266280', '402470', '357555', '266529', '390884', '257387', '382800', '312964', '282372', '346890', '289458'] 具體說來就是做了這個事: 百度指數(shù)居然對api數(shù)據(jù)進(jìn)行了前端加密,目的是什么呢? 我們知道百度現(xiàn)在已經(jīng)全線(如果不是請指正)使用了Https對內(nèi)容傳輸層級以下進(jìn)行了加密,基本上保證了數(shù)據(jù)安全。那前端加密本身的解密方法已經(jīng)都存在在瀏覽網(wǎng)頁中了,豈不是就是在防止用戶的行為或者爬蟲? 還真是…… 一方面是不信任瀏覽器,防范惡意瀏覽器或?yàn)g覽器插件抓取用戶瀏覽百度網(wǎng)站數(shù)據(jù)的信息;另一方面就是過濾一批剛剛試手的吃撐了的爬蟲玩家了,such as me…… 不過還是有一點(diǎn)挺搞笑的,百度指數(shù)一共有兩個api,一個是關(guān)于趨勢研究的,另外一個是關(guān)于人群畫像的,人群畫像的api卻沒有加密……真是醉了.... 喜歡本篇內(nèi)容請給我們點(diǎn)個在看 |
|