2016-04-12 118 views
1

我試圖在Node JS中創建一個web-scraper,並且遇到了障礙。 我需要點擊一個按鈕,但是,如果我沒有弄錯,Node實際上並不像瀏覽器那樣渲染網頁,所以我不能使用選擇器或X-Path。Node JS單擊頁面上的按鈕

那麼,如果我不能使用選擇器或X路徑,我可以單擊具有值「是」的特定按鈕嗎?沒有隻有yes按鈕纔是唯一的id。

我在問這個,因爲我想解析一個特定的網頁,但我被重定向到一個頁面,要求我按兩個按鈕。 按'是'會將我帶到我想要的頁面。按'否'顯然會阻止我前進。

有沒有什麼辦法可以在節點的範圍內做我想做的事情,而不必訴諸於JSDOM之類的東西?

這裏是我的工作的HTML的一部分:

<div class="buttons"> 
<button class="c-btn c-btn-primary" type="submit" name="bigbutton" value="no">no thank you</button> 
<button class="c-btn c-btn-primary" type="submit" name="bigbutton" value="yes">continue</button> 
</div> 

我試圖用這樣的:

document.getElementByID("selector").click() 

但被退回 '的ReferenceError:文件沒有定義'。

+0

[爲什麼node.js沒有本地DOM?](http://stackoverflow.com/questions/6657216/why-doesnt-node-js-have-a-native-dom) –

+3

在處理網絡服務器上的內容時,你不能真正「點擊」任何東西,也許你想要一個無頭瀏覽器或機器人代替 – adeneo

+0

是否可以事先簡單地找出重定向頁面的URL並讓Node直接廢棄它? –

回答

1

您是否嘗試過使用Zombie?我用過並且運作良好!這link是非常有用的,因爲很快澄清如何執行操作。