<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JS逆向|爬取熱度值保姆級(jí)教程

          共 1519字,需瀏覽 4分鐘

           ·

          2021-01-21 00:32

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包

          本次爬蟲(chóng)來(lái)源于猿人學(xué)題目,題目是介樣的:

          ?
          URL:

          http://match.yuanrenxue.com/match/2

          老規(guī)矩F12,刷新~

          ?
          這個(gè)cookie一看就有問(wèn)題哈,查看了一會(huì)兒再點(diǎn)第2頁(yè),漂亮,提示cookie失效,很明顯嘛,這就是個(gè)cookie反爬。

          清空一下cookie:

          ??
          直接右鍵清除,再次刷新:

          ??
          ??
          第一頁(yè)的話已經(jīng)可以看到我們需要的就是這個(gè)m的值,第二頁(yè)的cookie已經(jīng)略顯不同。設(shè)置cookie的話簡(jiǎn)單說(shuō)一下,你去訪問(wèn)一個(gè)網(wǎng)站,先去A接口設(shè)置了cookie然后又去了B接口進(jìn)行驗(yàn)證,獲取數(shù)據(jù)。

          首先我們需要去訪問(wèn)A接口去設(shè)置cookie:


          import?requests
          res?=?requests.get('http://match.yuanrenxue.com/match/2')
          print(res.text)

          ?
          然后呢,就拿到了這么一串東西,那必然就是設(shè)置cookie的js,也就是說(shuō)我們?cè)谶@個(gè)里面設(shè)置了cookie,再去請(qǐng)求就可以了。

          看到這么多,不要慌,一看就是ob混淆,在這個(gè)題目網(wǎng)站的上方有個(gè)分析工具,或者自己去下載個(gè)ob混淆一鍵還原也可以哈,然后找到下面ob混淆解析,把這串代碼的js標(biāo)簽去掉,復(fù)制進(jìn)去,點(diǎn)擊一鍵解混淆:

          ?
          再把下面的復(fù)制到webstorm中進(jìn)行調(diào)試,關(guān)于webstorm激活可以看上一篇:

          ?
          這樣就看起來(lái)很愉快了,也就是200來(lái)行的樣子,而且一眼就看到cookie。那就直接來(lái)看這個(gè)cookie吧,我們需要的是m的值,其他不需要的干掉:

          ?
          然后來(lái)看_0x39ba95這個(gè)函數(shù),根據(jù)前面看到的m的值,這可能是個(gè)時(shí)間戳。看下在哪里調(diào)用:

          ?
          就是個(gè)時(shí)間戳,接下來(lái)看_0x9c88d5這個(gè)函數(shù),其實(shí)也就是_0x3c2401這個(gè)函數(shù):

          ?
          第一段的話有興趣的可以去追一下,最簡(jiǎn)單的判斷哈,return的東西第一個(gè)沒(méi)啥用,第二個(gè)后面沒(méi)有地方調(diào)用的那就應(yīng)該沒(méi)啥用了,有用的話再扣回來(lái)就行了。

          所以刪掉這里:

          ?
          這兩行不能干掉的哈,對(duì)try那段感興趣的可以把這兩行干掉去看看哈:

          ?
          如果global怎么怎么樣,然后怎么怎么樣,否則怎么怎么樣。

          然后我們就來(lái)看_0x9bdac4這里,可以控制臺(tái)輸出下,也可以根據(jù)剛才m那里的符號(hào)去判斷下:

          return?navigator["vendorSub"];?=?return?'?';

          ?
          這里是個(gè)定時(shí)器,直接干掉,然后代碼就成了這樣:

          ?
          灰常的干凈,這樣就可以直接運(yùn)行跑起來(lái)了:

          ?
          現(xiàn)在只是輸出了值,還需要整合下代碼,合并下,搞下縮進(jìn),添加個(gè)調(diào)用cookie值的函數(shù),然后傳給py程序就行了。開(kāi)頭的那段一刪,整體往回縮進(jìn),多余的符號(hào)刪除。最后的console.log()改為:

          function?getcookie()?{
          ????return?_0x58af7c(_0x1805c7())
          }

          console.log(getcookie());

          ?
          ?放入python中,爬取效果:

          ?

          見(jiàn)面禮


          碼加我微信備注「三劍客」送你上圖三本Python入門(mén)電子書(shū)


          推薦閱讀


          1. 美團(tuán)App偷偷給用戶開(kāi)通金融貸款?!網(wǎng)友:1.5元就讓我貸款?

          2. 一文講透Python數(shù)據(jù)可視化技巧

          3. 突發(fā)!美團(tuán)又?jǐn)偵鲜聝毫?..

          4. 深圳一普通中學(xué)老師工資單曝光,秒殺程序員,網(wǎng)友:酸了酸了


          點(diǎn)分享
          點(diǎn)收藏
          點(diǎn)點(diǎn)贊
          點(diǎn)在看



          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草成人影院 | 69人人妻人人澡人人爽国产DVD | 欧美激情综合网 | 啪啪啪视频免费看 | 欧美特黄A片 |