2017-04-19 56 views
0

我有興趣嘗試網絡抓取項目。目標網站使用Javascript來動態加載和更新內容。大多數關於網站抓取此類網站的討論表明,在嘗試這樣的項目時,node.js,casper.js,phantom.js和nightmare.js都是合理流行的工具。 Node.js似乎最常用。運行Flask Web服務器是否會阻止Node.JS中的網頁抓取?

如果我正在運行Flask服務器並希望顯示node.js的結果,例如,在我的網站上以表格格式進行刮擦,這可能嗎?我會遇到兼容性問題嗎?或者我應該嘗試使用基於python的方法將其與BS4拼湊起來以保持一致性?我問,因爲node.js被描述爲一個服務器,所以我假設如果我試圖同時使用它和Flask,就會出現衝突。

回答

1

如果你想編寫一個執行javascript的網頁抓取工具,node.js(類似Phantom.js)是一個不錯的選擇。另一個流行的選擇是Selenium。您需要模擬用戶操作以激活事件處理程序。我們稱之爲「刮」行動。 BS4不適合,因爲它不能執行JavaScript。

將數據保存到磁盤後,以HTML表格形式顯示結果(讓我們將此操作稱爲「reporting」)將需要另一個解決方案。燒瓶是一個合適的選擇。

由於抓取和報告是單獨的問題,如果您想同時使用這兩種服務,則不會產生衝突。當使用Selenium或node.js作爲刮板時,您並不是真正運行Web服務器。所以將其視爲兩個可能發生衝突的Web服務器是不正確的。

+0

謝謝!起初我以爲節點只是另一種語言,然後我開始閱讀,並將它看作是一個Web服務器。接下來,幻影,casper和噩夢從木製品中出現,這增加了混亂。我衷心感謝清晰而簡明的迴應! – Ryan

相關問題