AJAX資料及提取的兩種方式
什麼是AJAX
AJAX(Asynchronouse JavaScript And XML)異步JavaScript和XML。過在背景與伺服器進行少量資料交換,Ajax 可以使網頁實作異步更新。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用Ajax)如果需要更新内容,必須重載整個網頁頁面。因為傳統的在傳輸資料格式方面,使用的是
XML
文法。是以叫做
AJAX
,其實作在資料互動基本上都是使用
JSON
。使用AJAX加載的資料,即使使用了JS,将資料渲染到了浏覽器中,在
右鍵->檢視網頁源代碼
還是不能看到通過ajax加載的資料,隻能看到使用這個url加載的html代碼。
擷取ajax資料的方式
- 直接分析ajax調用的接口,然後通過代碼請求這個接
這裡我們直接觀察審查元素(檢查)中的内容來判斷接口

這裡我選取了一個動态網頁的檢視更多,直接點選
然後觀察network頁籤的變化
這裡可以看到網頁在無重新整理的狀态下,通過檢視更多加載了很多圖檔資源,其中第一個檔案,檢視一下它的Preview頁籤,可以看到這個檔案是存儲json的
然後通過Headers頁籤,我們可以看到它請求的URL,這裡就需要我們自己去做簡單分析,比如,通過這個連結,可以猜想p=3這個參數是否為新加載内容,而n這個參數為加載内容數目為20條
這樣我們可以遵循連結的規則,去做一下簡單的請求
既然資料被爬取下來了,我們就可以通過操作json的方法,去操作請求下來的資料,非常友善。
操作json檔案參考 :https://blog.csdn.net/qq_41506882/article/details/104354521
-
使用Selenium+chromedriver模拟浏覽器行為擷取資料
Selenium相當于是一個機器人。可以模拟人類在浏覽器上的一些行為,自動處理浏覽器上的一些行為,比如點選,填充資料,删除cookie等。
方式 | 優點 | 缺點 |
---|---|---|
分析接口 | 用api接口請求資料,無需解析。代碼量少,性能高 | 分析接口比較複雜,特别是一些通過js混淆的接口,要有一定的js功底。容易被發現是爬蟲。 |
selenium | 直接模拟浏覽器行為。浏覽器能請求道的使用selenium也能請求到。爬蟲更穩定。 | 代碼量多。性能低 |
。