爬蟲(chóng)數(shù)據(jù)異步加載怎么辦?有兩種解決方案
jj
2022-07-23
現(xiàn)在很多項(xiàng)目都是從前端分離出來(lái)的,這樣會(huì)讓數(shù)據(jù)加載不同步的問(wèn)題更加突出。出現(xiàn)這樣的問(wèn)題,沒(méi)必要恐慌。一般來(lái)說(shuō)遇到爬蟲(chóng)數(shù)據(jù)異步加載怎么辦?有兩種解決方案。

內(nèi)置瀏覽器就是在抓取的程序中啟動(dòng)一個(gè)瀏覽器內(nèi)核,這樣我們就可以得到j(luò)s渲染的頁(yè)面,這樣我們就跟收集靜態(tài)頁(yè)面一樣。
常用的工具有三種:Selenium、HtmlUnit和PhantomJs。
這些工具都可以幫助我們解決數(shù)據(jù)異步加載的問(wèn)題,但是它們都有缺點(diǎn),就是效率低,不穩(wěn)定。
二、逆向分析法
什么是逆向分析法?我們js渲染頁(yè)面的數(shù)據(jù)是通過(guò)Ajax從后端獲取的。我們只需要找到對(duì)應(yīng)的Ajax請(qǐng)求連接,就可以獲取我們需要的數(shù)據(jù)。逆向分析法的優(yōu)勢(shì)在于:第一,得到的數(shù)據(jù)都是json格式的,方便分析;第二,界面的變化概率比頁(yè)面小。
同樣,它也有兩個(gè)缺點(diǎn)。你需要對(duì)Ajax有耐心和熟練,因?yàn)槟阈枰诖罅康恼?qǐng)求中找到你想要的;但是面對(duì)JavaScript渲染的頁(yè)面,逆向分析方法只能束手無(wú)策。
精靈ip代理
這是異步數(shù)據(jù)加載的兩種解決方案。你要根據(jù)具體情況來(lái)選擇。對(duì)于一些用JavaScript片段渲染的頁(yè)面,內(nèi)置瀏覽器更可靠。對(duì)于其他情況,逆向分析的方法更好,因?yàn)樗男阅芎头€(wěn)定性比內(nèi)置的瀏覽器內(nèi)核更可靠。
這是異步數(shù)據(jù)加載的兩種解決方案。你要根據(jù)具體情況來(lái)選擇。對(duì)于一些用JavaScript片段渲染的頁(yè)面,內(nèi)置瀏覽器更可靠。對(duì)于其他情況,逆向分析的方法更好,因?yàn)樗男阅芎头€(wěn)定性比內(nèi)置的瀏覽器內(nèi)核更可靠。

