該文章主要提供交流學習使用,請勿利用其進行不當行爲!
如本篇文章侵犯了貴公司的隱私,請聯繫我馬上刪除!
以前寫過今日頭條的三個參數逆向過程。
python
好像是上星期的時候,有人還到個人博客上問我_signature的生成過程。微信
我就又把今日頭條翻了一遍。app
而後在某論壇上,又看到有我的說看到個人文章,去逆向今日頭條出現了問題。python爬蟲
我就又把今日頭條翻新了一遍。。。函數
而後就發現_signature參數變了,變得更長了!!學習
長這樣子。
網站
長吧!!
加密
那我們抱着學習的態度去看看這個參數是怎麼生成的。
url
是學習。spa
學習。
嘻。
我們以推薦版塊爲例:
f12,而後全局搜索這個參數。
然後在這裏咱們發現了大冪冪。
隨後進入這個函數。
而後調試後發現s就是咱們的結果。
傳入參數a,a裏面url就是as,cp那些東西。
至於加密過程。
所有都綁定在window上。
這裏咱們先打印下:
這樣看着方便點是吧:
這裏能夠看到。
加密結果以及函數全都基於
window.byted_acrawler
那咱們先找一下byted_acrawler在哪裏的小角落。
噹噹噹噹噹
在script裏面找到他了。
咱們進入函數內部。
而後看到這些東西。
是和以前的_signature的腳本差很少是吧!
那咱們無腦點,還當成是以前的腳本。
咱們先複製出來,
放進一個咱們本身寫的函數裏面,方便運行。
而後打印window.byted_acrawler
和網站上的進行對比。
簡直是如出一轍撒。
然後,直接證明咱們的想法,
咱們傳入
window.byted_acrawler && window.byted_acrawler.sign ? window.byted_acrawler.sign(a) : ""
然後就報各類未定義。
咱們定義既可。
然後就會返回正確的數據,
咱們驗證一下。
這裏用exejs會報錯,,,用js2py運行5秒左右纔會返回數據,建議寫個js接口。
這裏用python調用,成功返回數據。
今天的分享到此結束了撒!!謝謝你們!!
本文分享自微信公衆號 - python爬蟲與js逆向(pythonORjs)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。