爬蟲——百度指數(shù)

蠻早之前公司有個(gè)產(chǎn)品問我能不能爬百度指數(shù)婿失,我隨便瞄了眼享幽,直接回了可以睹限,然后...光速打臉...今兒個(gè)有空浸须,研究研究這玩意兒。嫌長的可以直接拉到最后看后記邦泄。

目標(biāo)

先明確下要做什么删窒,目標(biāo)不是要寫出一個(gè)可用的完整的爬蟲,只是要個(gè)思路顺囊。

image.png

我們的目標(biāo)僅僅只是爬取這邊的數(shù)字肌索,162和125,還有后邊的比例特碳。

分析

先說點(diǎn)題外話诚亚,業(yè)界對(duì)數(shù)字的加密真是做的喪心病狂,返回假數(shù)據(jù)然后js重新計(jì)算修改都是簡單的了午乓,復(fù)雜的還有某移動(dòng)端網(wǎng)頁返回?cái)?shù)字234站宗,然而因?yàn)槭褂昧颂厥獾淖煮w顯示123的,這邊還有個(gè)更惡心的迷之加密益愈。
開始分析梢灭,首先,展示出來的樣子蒸其,不像是數(shù)字敏释,像是分辨率不高的幾張圖片,讓我們看看渲染完的html長啥樣的摸袁。

image.png

確實(shí)很迷钥顽,顯示出來好好的類似圖片的數(shù)字,html里邊(而且是渲染完的html)只有幾個(gè)div和span靠汁,class里邊倒有幾個(gè)val蜂大,txt闽铐,重點(diǎn)懷疑下,要看看哪里用到奶浦。而且看上去分辨率很低的圖片也還沒有出現(xiàn)兄墅,而根據(jù)我有限的知識(shí),html里邊顯示出來的圖片除了img標(biāo)簽财喳,也就css里的background。很明顯斩狱,我們?cè)谟疫呎业搅吮尘皥D耳高,果然,看來問題馬上就要解決了所踊,下載下來看看泌枪。

image.png

?秕岛?碌燕?這是什么鬼?继薛?修壕?等等,621215遏考,僅有的幾個(gè)數(shù)字似乎有點(diǎn)熟悉慈鸠,沒錯(cuò),就是上邊那幾個(gè)指數(shù)灌具,看來我們已經(jīng)找到了青团,感覺就是span里邊的style控制顯示的背景(還有這種操作?咖楣?)督笆。

先讓我們驗(yàn)證下上面的猜測,方法很簡單诱贿,換個(gè)關(guān)鍵詞娃肿,找到那個(gè)關(guān)鍵詞對(duì)應(yīng)的背景圖,拿過來替換到該關(guān)鍵詞中珠十,看看數(shù)字會(huì)不會(huì)變咸作。

image.png

果然,數(shù)字變了宵睦,變成了幾個(gè)不知道是什么的東西记罚。應(yīng)該是有什么地方可以控制顯示背景圖的第某個(gè)位置之類的方法。

繼續(xù)瞎改html


image.png

如圖壳嚎,我把imgval 和imgtxt 的style進(jìn)行了修改桐智,原先的162變成了112末早,顯然,是根據(jù)這個(gè)來控制顯示的值的说庭。這邊有兩個(gè)值然磷,一個(gè)是imgval的width,另一個(gè)是imgtxt的margin-left刊驴。

繼續(xù)找姿搜,這兩個(gè)值是哪里來的呢?直覺告訴我是js算出來的捆憎,一定是某個(gè)js 根據(jù)一個(gè)key舅柜,再怎么加密解密(前端就喜歡搞這一套 = = )得到的,一定是躲惰。然鵝致份,當(dāng)我打開network,竟然發(fā)現(xiàn)了這個(gè)

image.png

....... 直接去獲取的啊....
其實(shí)到了這础拨,我已經(jīng)能抓取了氮块。我們公司是有爬蟲渲染的模塊的,但是秉承著負(fù)責(zé)的態(tài)度诡宗,繼續(xù)往下看滔蝉,那這個(gè)url是誰發(fā)出的呢?

先放一個(gè)url
https://index.baidu.com/Interface/IndexShow/show/?res=XzQxJzIIAyRuCxU5CXgybx5THHx9LRE%2FJSZtHnteBHsBBBw%2BflgJJRokN25aQDZKd34gajodKkEWJFxQfDsWBB0WJzF8MnMtFAR%2BExY3VjkNYxooZBt0NEw6Lh5TVkZEAFwSCVEGCTA%2BOFRVJUUFSFgqRm0lYXYTfCJGVVFkOyZ2fzBVMgJnAW5FIhJTMQBAfSB%2BLm0xIAJFWyZILQQGPl8mE0MEIwc8YEtYHmMUOBYaHAQcb3wgXDd%2FVCEqLn0kNzVwDgNzH1krBBwiGioDAAofGwkvDRE%3D&res2=37ST6.341397.033YAYNLDflArlUE8fO8qIhKkWJnVeMVF4jxf0pBWJlMogXpnn7RTSXE37&classType=2&res3[]=z0&res3[]=Ee&className=profWagv

分析下長得很像的幾個(gè)發(fā)出的url塔沃,很容易可以發(fā)現(xiàn)大部分字段都是一樣的锰提,估計(jì)是把keyword再和什么東西加密得到的,然后后邊都是明文芳悲,所以我們只需要找到res和res2生成的方法就可以了立肘。

過去了兩個(gè)小時(shí)...

沒想到啊,竟然卡在這了名扛。
直接給結(jié)論吧...res和res2都在直接返回的html里邊谅年。
res是直接給的,直接搜PPval.ppt后面一長串就是了肮韧。

res.png

res2找了我好久融蹂,結(jié)果也是這里面。弄企。
找到類似這樣的東西

res2.png

圖中的VWO就是了超燃,需要自己寫下這個(gè)js模擬算下,要注意的是拘领,這幾個(gè)字母是會(huì)變得R馀摇!每次都不一樣T妓亍届良!

后記

行了笆凌,就這樣了,比想象的麻煩多了士葫,但回過頭來看其實(shí)很簡單乞而。

  • 獲取頁面 類似這樣https://index.baidu.com/?tpl=trend&type=0&area=0&time=13&word=%C3%C3%D7%D3%B0%C9 ,這邊可能需要登錄慢显,我沒做
  • 提取PPval.ppt記做res 用正則在上面獲取到的html中抽出來就好了
  • 獲取res2 res2需要跑一下這個(gè)html里邊有個(gè)script爪模,具體找的方式看上一段
  • 拼接 "https://index.baidu.com/Interface/IndexShow/show/?res={res}&res2={res2}&classType=2&res3[]=z0&res3[]=Ee&className=profWagv".format(res=res,res2=res2)
  • 獲取數(shù)字 上面url返回的有兩樣?xùn)|西,一個(gè)style荚藻,確定數(shù)字位置屋灌,一個(gè)是background。兩者就能得到以圖片顯示的數(shù)字了鞋喇,然后ocr識(shí)別一下分分鐘就搞定了(說的簡單)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末声滥,一起剝皮案震驚了整個(gè)濱河市眉撵,隨后出現(xiàn)的幾起案子侦香,更是在濱河造成了極大的恐慌,老刑警劉巖纽疟,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罐韩,死亡現(xiàn)場離奇詭異,居然都是意外死亡污朽,警方通過查閱死者的電腦和手機(jī)散吵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟆肆,“玉大人矾睦,你說我怎么就攤上這事⊙坠Γ” “怎么了枚冗?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛇损。 經(jīng)常有香客問我赁温,道長,這世上最難降的妖魔是什么淤齐? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任股囊,我火速辦了婚禮,結(jié)果婚禮上更啄,老公的妹妹穿的比我還像新娘稚疹。我一直安慰自己,他們只是感情好祭务,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布贫堰。 她就那樣靜靜地躺著穆壕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪其屏。 梳的紋絲不亂的頭發(fā)上喇勋,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音偎行,去河邊找鬼川背。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛤袒,可吹牛的內(nèi)容都是我干的熄云。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼妙真,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼缴允!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起珍德,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤练般,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锈候,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薄料,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年泵琳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摄职。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡获列,死狀恐怖谷市,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布茶袒,位于F島的核電站,受9級(jí)特大地震影響及皂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜且改,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一验烧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧又跛,春花似錦碍拆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽端幼。三九已至,卻和暖如春弧满,著一層夾襖步出監(jiān)牢的瞬間婆跑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工庭呜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滑进,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓募谎,卻偏偏與公主長得像扶关,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子数冬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容