爬蟲系列之解決動態數據獲取(一)


    有時候,我們天真無邪的使用urllib庫或Scrapy下載HTML網頁時會發現,我們要提取的網頁元素並不在我們下載到的HTML之中,盡管它們在瀏覽器里看起來唾手可得。

     這說明我們想要的元素是在我們的某些操作下通過js事件動態生成的。舉個例子,我們在刷QQ空間或者微博評論的時候,一直往下刷,網頁越來越長,內容越來越多,就是這個讓人又愛又恨的動態加載。

爬取動態頁面目前來說有兩種方法

  •     分析請求頁面

  • 通過Selenium模擬瀏覽器獲取

小編不推薦使用方法二,原因很簡單,效率低,爬取少量頁面數據可以接受,如果我們獲取的頁面層次多數據量大,那么它的執行效率會死人的。。。。

分析很簡單,我們只需要打開了瀏覽器F12開發者模式,獲取它的js請求文件(除JS選項卡還有可能在XHR選項卡中,當然也可以通過其它抓包工具

我們打開第一財經網看看,發現無法獲取元素的內容

打開Network,看下它的請求,這里我們只看它的js請求就夠了

將它的url放到瀏覽器看下

我們觀察url的規律可以看到每次末尾的url都自增1,這樣我們就可以重構請求來獲取數據,貼下代碼

這里的數值1584是小編手動試出來的,還有一種方法就是直接while循環,在判斷返回值,如果還有更好的方法,請告知下小編

有時候,一些網站所有的接口都進行了加密操作,我們無法解析js,就必須采用selenium+phantomjs進行獲取,具體使用請看另一篇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM