天天看點

AJAX動态資料擷取的兩種方式

AJAX資料及提取的兩種方式

什麼是AJAX

​ AJAX(Asynchronouse JavaScript And XML)異步JavaScript和XML。過在背景與伺服器進行少量資料交換,Ajax 可以使網頁實作異步更新。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用Ajax)如果需要更新内容,必須重載整個網頁頁面。因為傳統的在傳輸資料格式方面,使用的是

XML

文法。是以叫做

AJAX

,其實作在資料互動基本上都是使用

JSON

。使用AJAX加載的資料,即使使用了JS,将資料渲染到了浏覽器中,在

右鍵->檢視網頁源代碼

還是不能看到通過ajax加載的資料,隻能看到使用這個url加載的html代碼。

擷取ajax資料的方式

  • 直接分析ajax調用的接口,然後通過代碼請求這個接

這裡我們直接觀察審查元素(檢查)中的内容來判斷接口

AJAX動态資料擷取的兩種方式

這裡我選取了一個動态網頁的檢視更多,直接點選

AJAX動态資料擷取的兩種方式

然後觀察network頁籤的變化

AJAX動态資料擷取的兩種方式

這裡可以看到網頁在無重新整理的狀态下,通過檢視更多加載了很多圖檔資源,其中第一個檔案,檢視一下它的Preview頁籤,可以看到這個檔案是存儲json的

AJAX動态資料擷取的兩種方式

然後通過Headers頁籤,我們可以看到它請求的URL,這裡就需要我們自己去做簡單分析,比如,通過這個連結,可以猜想p=3這個參數是否為新加載内容,而n這個參數為加載内容數目為20條

AJAX動态資料擷取的兩種方式

這樣我們可以遵循連結的規則,去做一下簡單的請求

AJAX動态資料擷取的兩種方式

既然資料被爬取下來了,我們就可以通過操作json的方法,去操作請求下來的資料,非常友善。

操作json檔案參考 :https://blog.csdn.net/qq_41506882/article/details/104354521

  • 使用Selenium+chromedriver模拟浏覽器行為擷取資料

    Selenium相當于是一個機器人。可以模拟人類在浏覽器上的一些行為,自動處理浏覽器上的一些行為,比如點選,填充資料,删除cookie等。

方式 優點 缺點
分析接口 用api接口請求資料,無需解析。代碼量少,性能高 分析接口比較複雜,特别是一些通過js混淆的接口,要有一定的js功底。容易被發現是爬蟲。
selenium 直接模拟浏覽器行為。浏覽器能請求道的使用selenium也能請求到。爬蟲更穩定。 代碼量多。性能低