如何用websocket抓取JS渲染頁面

上次面試,面試官問了下如何使用websocket抓取js渲染了的頁面,因爲原來抓取小說網站上的首頁面都是靜態網頁,還沒考慮過js渲染頁面,後來看了看,發現使用websocket抓取js渲染頁面主要有兩種方式:

1.使用工具,將頁面進行js渲染之後再抓取,這主要的工具有SeleniumHtmlUnit或者PhantomJs,但是這些工具都存在一定的效率問題,同時也不是那麼穩定。好處是編寫規則同靜態頁面一樣。

2.分析ajax請求中的地址,因爲js渲染出的數據一般也是通過ajax從後臺傳輸過來的,而且相對於頁面樣式,這種接口變化可能性更小。缺點就是找到這個請求,並進行模擬,是一個相對困難的過程,也需要相對多的分析經驗。


兩種模式的大概模型:

  1. 後端渲染的頁面

    下載輔助頁面=>發現鏈接=>下載並分析目標HTML

  2. 前端渲染的頁面

    發現輔助數據=>構造鏈接=>下載並分析目標AJAX

參考地址:http://webmagic.io/docs/zh/posts/chx-cases/js-render-page.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章