微信指數(shù)的橫空出世燕偶,立即就攪了整個互聯(lián)網(wǎng),很多人都在觀察础嫡,很多對標(biāo)產(chǎn)品也正在緊鑼密鼓的開發(fā)中指么。既然要使用微信指數(shù),相信很多人都希望可以獲取到微信指數(shù)的官方API×穸Γ現(xiàn)在伯诬,我們就來找一找微信指數(shù)的API。
第一步巫财,手機搜索微信指數(shù)盗似,我們發(fā)現(xiàn)微信搜索的BaseUri是https://search.weixin.qq.com
,但是平项,這個地址卻不能發(fā)送到Windows客戶端桥言。所以我抓包找到了https://search.weixin.qq.com/cgi-bin/searchweb/clientjump?tag=wxindex
萌踱。
第二步,在微信的Windows客戶端訪問https://search.weixin.qq.com/cgi-bin/searchweb/clientjump?tag=wxindex
号阿,就可以看到微信指數(shù)的搜索頁面了并鸵。如果這時,你用默認(rèn)瀏覽器訪問該URI扔涧,就會發(fā)現(xiàn)返回了一段JSON字符串园担,告訴你參數(shù)無效。
第三步枯夜,不要氣餒弯汰,我們繼續(xù)來。雖然微信指數(shù)的首頁不能在瀏覽器中直接訪問湖雹,但是我們卻可以搜索某個關(guān)鍵詞進(jìn)入指數(shù)詳情頁面咏闪,這樣就可以直接使用瀏覽器來訪問了。
第四步摔吏,現(xiàn)在我們得到了https://search.weixin.qq.com/cgi-bin/h5/wxindex/detail.html?q=%E5%A4%A9%E6%B4%A5#wechat_redirect
這個網(wǎng)址鸽嫂。detail頁面既然已經(jīng)展示使用highcharts的圖表,那么數(shù)據(jù)一定是通過Ajax傳入了Json數(shù)據(jù)征讲,再進(jìn)行渲染的据某。
第五步,打開https://search.weixin.qq.com/cgi-bin/h5/wxindex/detail.html?q=%E5%A4%A9%E6%B4%A5#wechat_redirect
的源代碼诗箍,從240行開始癣籽,我們終于要發(fā)現(xiàn)線索了。
baseUrl: "https://wximg.qq.com/mmsearch/h5/dist/"
,指明了js文件所在的路徑滤祖,下面的兩個key
分別為20170101-mmsearch-wxindex-common.js
和20170101-mmsearch-wxindex-detail.min.js
是我們尋找的關(guān)鍵筷狼。
首先我們打開https://wximg.qq.com/mmsearch/h5/dist/wxindex/wxindex-common.js?v=2
,密密麻麻都是壓縮過的js代碼匠童。沒事桑逝,我們只需要尋找關(guān)鍵部分,就是
var e=encodeURIComponent(encodeURIComponent(window.location.href.replace(/#[\d\w\=\?.\&]+/,""))),i="http://search.weixin.qq.com/cgi-bin/searchweb/getjsapiticket?sign_url="+e;
首先我們來看聲明的變量e
俏让,就是經(jīng)過URL編碼后的一個字符串,然后將它以key
為sign_url
的GET方式訪問search.weixin.qq.com/cgi-bin/searchweb/getjsapiticket
茬暇,那么我們就來嘗試一下首昔。
將第二步中的URI經(jīng)過URL編碼得到https%3a%2f%2fsearch.weixin.qq.com%2fcgi-bin%2fsearchweb%2fclientjump%3ftag%3dwxindex
,然后把它附加在https://search.weixin.qq.com/cgi-bin/searchweb/getjsapiticket?sign_url=
的后面糙俗,直接訪問它勒奇。
又得到了JSON的響應(yīng),其他的我們不用管巧骚,我們只需要找到data
中的timestamp
赊颠,它代表了UNIX時間戳的格式格二,這個格式我們后面需要用到。
第六步竣蹦,我們打開上一步中找到的第二個js文件https://wximg.qq.com/mmsearch/h5/dist/wxindex/detail.min.js?v=5
(注意觀察這個文件的名字顶猜,是不是和https://search.weixin.qq.com/cgi-bin/h5/wxindex/detail.html?q=
微信#wechat_redirect有些地方很相似呢?)痘括。打開這個js后长窄,發(fā)現(xiàn)這就是我們要找的文件颜启,比如“該詞條暫未被收錄”這個目前只有微信指數(shù)搜索的空結(jié)果才會提示的Error
信息忠聚,正是對應(yīng)該文件的標(biāo)識。
我們還是來找關(guān)鍵部分弧关,
getWxIndexData:function(){var e=this,t=new Date;if(e.end_time=t.getTime()/1e3-86400,e.start_time=t.getTime()/1e3-7776e3,e.query){var a="https://search.weixin.qq.com/cgi-bin/searchweb/getwxindex",n={query:e.query,start_time:e.start_time,end_time:e.end_time};
代碼其實已經(jīng)很明顯了翰舌,getWxIndexData
就是“獲取微信指數(shù)數(shù)據(jù)”的定義嚣潜,變量t被當(dāng)前時間賦值,e.start_time
和e.end_time
被t的getTime()方法的返回值做了進(jìn)一步處理椅贱,說明這兩個變量就是微信指數(shù)中的“7天”懂算、“30天”、“90天”的日期范圍起始值夜涕,變量a定義了api的地址及我們需要的三個參數(shù):https://search.weixin.qq.com/cgi-bin/searchweb/getwxindex?query=【關(guān)鍵詞】&start_time=【日期范圍起始時間戳】&end_time=【日期范圍截止時間戳】
最后犯犁,我們來驗證一下,通過時間戳工具女器,我們得到了當(dāng)前的時間戳1490322890
酸役,那么7天之前(2017年3月24日 10:35:22)的時間戳就是1489718155
,我們來搜索一下【天津】這個指數(shù)驾胆,訪問URI:https://search.weixin.qq.com/cgi-bin/searchweb/getwxindex?query=%E5%A4%A9%E6%B4%A5&start_time=1489718155&end_time=1490322890
我們得到了json的響應(yīng)涣澡,數(shù)據(jù)為"wxindex": "11666515.00,5237192.00,4685480.00,8226879.00,8329063.50,8431248.00,8431248.00,8431248.00"
,從手機端搜索微信指數(shù)并對比一下丧诺,以此驗證入桂。
以上,完驳阎。
寧大叔小怪獸抗愁。