2017-08-01 83 views
0

我想使用'XMLHttpRequest'通過JavaScript訪問網頁,抓取輸出並使用'getElementbyID'或'getElementsbyName'方法從輸出中檢索表信息。我可以得到輸出,但下面的代碼,但表格信息的檢索提供了一個錯誤。在瀏覽器外解析HTML頁面和訪問表信息

var webPage = 'xx'; 
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 
var reqWebPage = new XMLHttpRequest(); 
reqWebPage.open('GET', webPage, false); 
reqWebPage.send(); 
var responseHTTP = reqWebPage.responseText; 
var tableMain = responseHTTP.getElementbyID('main-table'); 
console.log tableMain 

錯誤:TypeError:responseHTTP.getElementsbyName不是函數。有沒有辦法解決這個問題?我在節點上運行這個javascript,而不是瀏覽器。

+2

子節點,你可以試試這個上獲得「主表」元素:[https://stackoverflow.com/questions/ 13466812 /的getElementById-值爲非功能時-試圖對解析-AN-Ajax的響應(https://stackoverflow.com/questions/13466812/getelementbyid-not-a-function-when-trying-to -parse-a-ajax-response)或者不是你想要的? – onno204

+0

你也可以嘗試'var responseHTTP = reqWebPage.responseText; var div = document.createElement('div'); div.innerHTML = responseHTTP; var tableMain = div.getElementbyID('main-table');' – Will

+0

@ will - 但是你的建議是否假定文檔對象會出現。解析AJAX響應時情況並非如此。 – EJK

回答

-1

我認爲responseText的已經不是getElementbyID方法,你應該通過迭代的reqWebPage.responseText

+1

使用dom解析器解析responseText以獲取所需的表格詳細信息。 var DomParser = require('dom-parser'); var parser = new DomParser(); var dom = parser.parseFromString(responseHTTP); var element = dom.getElementById('main-table')。innerHTML; –