(本人原創(chuàng)踪栋,謝絕轉(zhuǎn)載)
咳咳。图毕。豇豆哥昨天偷懶了夷都,沒給大家分享文章。予颤。太累了
今天可就不能偷懶了囤官。。繼上一篇微信指數(shù)推出來蛤虐,粉絲蹭蹭蹭的上漲党饮,心中大喜(實則竊笑,不知道多少小白又要入坑啦)哈哈驳庭。刑顺。。
今天推出第三篇饲常,百度指數(shù)蹲堂。
感謝篇:
寫這篇文章之前還是首先要感謝一些人:
@采銅謝謝老大哥給我提供的思路與提示
其次感謝@七夜的故事 謝謝老哥提供解決百度登錄的思路。贝淤。思路清晰明了柒竞,一讀就懂。
當(dāng)然還有一個最需要感謝的是我的團(tuán)隊老哥@小莊 此老哥骨骼精奇播聪,專治疑難雜癥D芊浮!
好了 正式開始犬耻!
分析篇:
百度指數(shù):百度指數(shù)搜索關(guān)鍵詞:美女(百度:想看美女,沒門V刺)
給我給我登錄枕磁,不登錄門都沒有!术吝!
好吧计济,開啟踩坑之路!排苍!
1沦寂、百度登錄。淘衙。推薦大家上github上搜索baidulogin.py (也就是我要感謝的哪位老哥提供的登錄思路传藏。)登錄可以解決了額。。
2毯侦、那么我們就開始瘋狂的搜搜(什么美女啊哭靖,波多野結(jié)衣啊、日本女優(yōu)啊侈离。试幽。∝阅耄咳咳差不多了铺坞,一個一個的來不然受不了)查到了吧,哈哈這么簡單洲胖。有日期济榨,有數(shù)據(jù)。這不正是我想要的嗎宾濒?(此時腦袋中瘋狂的想到了用fiddler抓包腿短,分析,請求绘梦,gameover)
開啟fiddler中橘忱。。卸奉。钝诚。
我找啊找。榄棵。凝颇,找到了,簡單吧疹鳄。拧略。返回值還是json(我的最愛。)咦瘪弓?不對吧垫蛆,這個返回值怎么沒有我需要的數(shù)據(jù)呢(坑來了。腺怯。袱饭。)
3、尋找我需要的數(shù)據(jù)呛占,但是返回值是一串我看不懂的代碼虑乖。等等。晾虑。我發(fā)現(xiàn)一個userIndexes_enc的值是不一樣疹味?這個是什么值呢仅叫,于是乎我在整個fiddler里面搜索關(guān)鍵字:b3ef,發(fā)現(xiàn)了
哈哈 有收獲吧佛猛,在來看看這個這個網(wǎng)頁的返回值是什么惑芭?感覺是個前端的代碼。继找∷旄看不懂(大坑)
好吧,可以先把userIndexes_enc的值拿下來婴渡,可能有用幻锁。
4、繼續(xù)尋找參數(shù)來源:
在尋找這些參數(shù)的來源時候边臼,是通過web端的代碼去解析出res和res2來獲取的哄尔,這一段得感謝@采銅老哥的解答。我成功的拿到了res 和res2柠并,我是用了execute_script這個函數(shù)去執(zhí)行腳本后拿到的(坑)
5岭接、這一段代碼有啥用呢?我也不知道臼予,主要是看不懂源代碼鸣戴,趕緊去補(bǔ)一些前端的知識(祭出我百度大法好,坑U呈啊)窄锅。。大概了解這段代碼的意思后缰雇,俺們動手了入偷。
大概的意思是一些html下圖片。(似乎懂了械哟,百度這個大坑疏之。居然用前端渲染的圖片作為返回值!O九亍锋爪!下次搜索放棄你了,還是我Google大法好E雌椤!:佑尽)
6沃呢、拿到圖片后,當(dāng)然得識別圖片上的數(shù)字啦拆挥。薄霜。(悄悄告訴大家某抓,又是一個大坑!)惰瓜,識別圖片嘛否副,簡單。崎坊。tesseract隨便搞搞就出來了备禀。∧巫幔咳咳把圖片拿下之后才發(fā)現(xiàn)是這樣的曲尸。
蒙版識別(吐。男翰。另患。。)蛾绎,不過堅持就是勝利昆箕,把數(shù)據(jù)從里面拿出來就行啦。租冠。不難不難
于是乎鹏倘,我開始了我編程的大坑路!肺稀!
編程篇:
1第股、百度登錄這塊直接參考別人得文章,耗費(fèi)的時間實際上不長(喬布斯老人家說過嘛话原,greate artist steal夕吻。https://github.com/qiyeboy/baidulogin/blob/master/baidulogin.py
這個不錯,邏輯清晰繁仁,代碼干凈涉馅,萬能的github果然不辜負(fù)我的重望)
2、獲取res黄虱、res2稚矿、res3[],實話說捻浦,獲取res和res2是最難的晤揣,想過很多辦法都沒獲取,在團(tuán)隊(奇男子的幫住下朱灿,兩行代碼解決問題昧识,在下怎么一個服字了得!5涟恰跪楞!記鬃喝ァ:他叫小莊!5榧馈B扑椤)res3[]的獲取相對要簡單的多,傳入一個時間參數(shù)池户,res和res2傳入進(jìn)去后就能獲得咏雌!
3、請求數(shù)據(jù)煞檩,獲得html的圖片处嫌,并采用切割拼接的方法獲得數(shù)據(jù)圖片(老板,上菜):
拼接渲染之后的圖片斟湃。
4熏迹、圖片識別,這塊網(wǎng)上教程太多凝赛,我就不多講注暗!
還是給大家貼一點(diǎn)福利吧(核心代碼):
ok,編程篇講完了墓猎,是不是感覺一臉悶逼捆昏。。
咦好像少了一點(diǎn)啥:
對對對1姓础F贰!結(jié)果圖:
第一章是win7下直接采集的數(shù)據(jù):
第二章是通過接口調(diào)用獲得的數(shù)據(jù):
數(shù)據(jù)截圖不完整左胞,可以對比一下寇仓,接口是調(diào)通了的。烤宙。
總結(jié)篇:
1遍烦、分析很關(guān)鍵,分析通了寫代碼就很簡單躺枕。
2服猪、從根源找起,找到需要的參數(shù)拐云,一步一步的走過來(實話說:是不是有點(diǎn)像高中數(shù)學(xué)中的證明題0罩怼!特別是反證法叉瘩。ps:俺的最愛)
3膳帕、用到的技術(shù):Python執(zhí)行js代碼的庫,selenium+phantomjs獲取cookies,圖片的切割和拼接房揭,圖像識別(像素比對)备闲。
4、在圖像識別這塊可以使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)捅暴,不過俺不會恬砂,繼續(xù)加強(qiáng)學(xué)習(xí)!本人技術(shù)比較low蓬痒,還有很多不懂的地方泻骤,知乎中的各位大神小神,文章有不妥的地方歡迎指出梧奢,也歡迎粉我狱掂,私信騷擾俺。