簡體   English   中英

如何從外部網站獲取HTML表值?

[英]How to get HTML table values from external website?

我想訪問一些HTML表格數據以離線保存和使用它們。 目前,當我下載網頁並將JavaScript放入該文件時,我會使用JavaScript並能正常工作。 但是我想直接從網頁上獲取元素,而無需事先下載,或者JavaScript自動下載它並從下載的文件中獲取元素。

那可能嗎? 我找不到答案,因為每個人都在請求自己的網頁,但是我不擁有想要從中獲取表數據的網站。

到目前為止,我的代碼:

function showTableData() {
    var tableData = document.getElementsByClassName('homeonly');

    for (i = 1; i < tableData[0].rows.length; i++) {

        var objCells = tableData[0].rows.item(i).cells;

        for (var j = 0; j < objCells.length; j++) {
            if (objCells.item(j).innerHTML == "NAME") {
                info.innerHTML = info.innerHTML + ' ' + objCells.item(3).innerHTML;
            }
        }
    }
}

info是HTML中要顯示的段落元素的ID。

首先,您必須確保它在遠程(您要下載的站點)合法使用。

只需發送帶有URL的GET HTTP請求,您將得到html作為響應。 您可以解析html並查找表和其他元素。

如果遠程服務器不允許跨域,則必須使用HTTP客戶端創建一些后端,以提供html。

您的第一個選擇是下載網頁的靜態版本,然后將您的JavaScript代碼注入該網頁。

或者-第二種選擇-我覺得更簡單,請使用Chrome的JavaScript控制台執行所需的命令。

如果發現此方法有局限性,則可以找到一個Web抓取node.js庫,並將其寫入其中。

您可以使用網頁抓取。 有多種語言的各種Web抓取工具。 我也是python開發人員,我用python selenium和scrapy創建了許多腳本。 因此,我認為這是滿足您要求的最佳解決方案。

您打算采取的措施很可能是xss攻擊的一種形式,大多數網站都會對此做准備。 在不下載實際網頁的情況下,最好的辦法是打開chrome上的Inspect Element選項卡轉到console 然后在此處粘貼並運行您的函數,因為您可以在那里訪問DOM。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM