這一節(jié)介紹一下通過JSON進行前后端交互的爬取技巧和一些我個人覺得挺有意思的反爬措施.
JSON交互的話,基本就是通過ajax動態(tài)加載技術(shù)將后臺傳回的數(shù)據(jù)通過js渲染的方式放進網(wǎng)頁中.由服務(wù)端發(fā)送一個ajax請求,然后根據(jù)后臺配置返回相應(yīng)的JSON數(shù)據(jù)來進行動態(tài)渲染.如果網(wǎng)站是這么運行的,那么頁面就無需重新加載整個網(wǎng)頁就可以對網(wǎng)頁的某部分進行更新。絕大多數(shù)都是與后臺搭建的服務(wù)端API所進行交互的.大概使用這種方式的你都會找到一個界面類似于下圖這樣的.
這圖是bilibili視頻的api接口,也就是后臺與前端進行交互的地方.
該技術(shù)其實嚴格意義上不算反爬措辭,相反,由于JSON的便利性,解析JSON要比解析頁面文件要來的方便和快速的多.但至少對于才入門只會解析頁面的新手來說,還是有一些難度的.
面對這種技術(shù)的話,我們應(yīng)對的方式也很簡單,那么就是對網(wǎng)頁進行抓包,探知該與此網(wǎng)頁進行數(shù)據(jù)交換的后臺服務(wù)的地址,然后我們偽造和網(wǎng)頁相同的數(shù)據(jù)包,跳過網(wǎng)頁直接請求后臺服務(wù),得到所需的數(shù)據(jù). 不過這類后臺服務(wù)一般設(shè)有封禁類策略,在請求的時候,要特別注意閥值。目前使用的抓包工具一般是burpsuite,fidder或者Chrome和Firefox的開發(fā)人員工具.有關(guān)于JSON解析的話,我們可以通過json解析服務(wù)完成在線解析,.你通過這一步就可以把上圖中的json解析成這樣:
..:
這樣就可以得知json的結(jié)構(gòu),從而快速輕巧的從中得到你要的數(shù)據(jù).
關(guān)于前面所有的投毒,偽造404頁面就是我覺得有意思的一些反爬技巧的了,有時候是真覺得反爬系統(tǒng)的開發(fā)者有著很大的腦洞。如何將數(shù)據(jù)混淆到爬蟲無法獲取但正常用戶又能一眼就能知曉數(shù)據(jù).這里簡單舉幾個我遇到過的例子就結(jié)束,因為沒有規(guī)則,所以解決方案還得見招拆招。
網(wǎng)易云音樂里面的數(shù)據(jù)是異步加載嵌套在i-frame里面,并且src=="about:blank".這也就意味這你怎么定位都定位不了

好了,現(xiàn)在反爬措施也講完了。那么如果下次你們在遇到像上面這些措施的話,該知道怎么樣才能繞過去了吧.如果那時候不記得了,記得回來再看一遍哦。