數據應該是動態加載的,放在一個json里面,需要抓包分析,BS4和xpath直接獲取的是網頁源碼,解析不到數據,所以直接返回的是空值,下面我簡單介紹一下如何獲取動態網頁的數據,感興趣的朋友可以嘗試一下,以人人貸上的數據為例:
首先,分析數據
打開我們需要爬取的網頁,這里假設我們要爬取的數據如下,涉及5個字段,都是一些比較規范的列表,提取起來也比較容易:
打開網頁源碼(不要右鍵檢查),按住ctrl+F鍵任意搜索一個數據,可以看得出來,任何數據都查找不到,這時數據就很有可能是動態加載的,放在一個json里面,需要抓包分析進行確定:
接著,抓包分析
還是剛才的網頁,按F12調出開發者工具,依次點擊“Network”->“XHR”,F5刷新頁面,仔細觀察抓取到的文件,一個一個比照需要爬取的數據進行分析,最后可以看到加載的json如下,也就是我們需要獲取的數據,這里一般都是按照一定規律進行循環,一頁一頁往下加載,格式是json的,主要是為了方便解析和提取,記著這里的url,后面直接用requests請求即可:
最后,編寫程序
前面的json url已經確定,這里直接請求、解析數據即可,如下,代碼非常簡單,基本思想先requests獲取數據,然后再json解析,一個一個字段的提取出來:
程序運行截圖如下,已經成功獲取到我們需要的數據:
至此,我們就完成了獲取動態網頁數據,最重要的還是進行抓包分析,靜態網頁數據一般都是固定不變的,直接在網頁源碼中可以看到,但是動態網頁就不行了,只有在請求頁面的時候才進行加載,而且它是實時更新和變化的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。