此Python破解反爬蟲實(shí)例,曾幫助過(guò)我成長(zhǎng),你也會(huì)對(duì)它表示感謝!
通過(guò)用JS在本地生成隨機(jī)字符串的反爬蟲機(jī)制,在利用Python寫爬蟲的時(shí)候經(jīng)常會(huì)遇到的一個(gè)問(wèn)題。希望通過(guò)講解,能為大家提供一種思路。以后再碰到這種問(wèn)題的時(shí)候知道該如何解決。(如果缺乏學(xué)習(xí)資料的同學(xué),文末已經(jīng)給你提供?。?/p>
破解有道翻譯反爬蟲機(jī)制
web端的有道翻譯,在之前是直接可以爬的。也就是說(shuō)只要獲取到了他的接口,你就可以肆無(wú)忌憚的使用他的接口進(jìn)行翻譯而不需要支付任何費(fèi)用。那么自從有道翻譯推出他的API服務(wù)的時(shí)候,就對(duì)這個(gè)接口做一個(gè)反爬蟲機(jī)制。這個(gè)反爬蟲機(jī)制在爬蟲領(lǐng)域算是一個(gè)非常經(jīng)典的技術(shù)手段。那么他的反爬蟲機(jī)制原理是什么?如何破解?接下來(lái)帶大家一探究竟。
一、正常的爬蟲流程:
在上圖,我們可以看到發(fā)送了很多的網(wǎng)絡(luò)請(qǐng)求,這里我們點(diǎn)擊***個(gè)網(wǎng)絡(luò)請(qǐng)求進(jìn)行查看:
對(duì)其中幾個(gè)比較重要的數(shù)據(jù)進(jìn)行解釋:
其他的數(shù)據(jù)類型暫時(shí)就不怎么重要了,都是固定寫法,我們后面寫代碼的時(shí)候直接鞋子就可以了。到現(xiàn)在為止,我們就可以寫一個(gè)簡(jiǎn)單的爬蟲,去調(diào)用有道翻譯的接口了。這里我們使用的網(wǎng)絡(luò)請(qǐng)求庫(kù)是Python3自帶的urllib,相關(guān)代碼如下:
二、破解反爬蟲機(jī)制:
然后把格式化后的代碼,復(fù)制下來(lái),用sublime或者pycharm打開(kāi)都可以,然后搜索salt,可以找到相關(guān)的代碼:
知道salt和sign的生成原理后,我們就可以寫Python代碼,來(lái)對(duì)接他的接口了,以下是相關(guān)代碼: