javascript 从加载速度慢的URL获取数据-响应中缺少几个html标记

rkue9o1l  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(112)

我试着使用fetch从网页上的表格中提取股票的部门信息,使用下面的代码。

fetch('https://www.nseindia.com/get-quotes/equity?symbol=3IINFOLTD')
      .then(res => res.text())
      .then((responseText) => {
        
        let document = new DOMParser().parseFromString(responseText, 'text/html');
        let table = document.getElementById('industryInfo');
        console.log(table);
});

但是,使用上述方法时,table标记缺少tbody,我们如何等待整个页面加载并从响应中解析document对象呢?

下面是来自响应的表标记

<table id="industryInfo" class="eq-series tbl-securityinfo cap-hide">
    <thead>
        <tr>
            <th>Macro-Economic Sector</th>
            <th>Sector</th>
            <th>Industry</th>
            <th>Basic Industry</th>
        </tr>
    </thead>
</table>
qv7cva1a

qv7cva1a1#

GET请求收到的源代码不包含tbodytbody是由页面上的JavaScript代码生成的。您可能需要改为对https://www.nseindia.com/api/quote-equity?symbol=3IINFOLTD执行提取请求。

fetch('https://www.nseindia.com/api/quote-equity?symbol=3IINFOLTD')
  .then(res => res.json())
  .then(json => {
    console.log(json.industryInfo.macro);
    console.log(json.industryInfo.sector);
    console.log(json.industryInfo.industry);
    console.log(json.industryInfo.basicIndustry);
});

// Outputs:
// "Information Technology"
// "Information Technology"
// "IT - Software"
// "Computers - Software & Consulting"

相关问题