Javascript 从节点js中的html响应获取值

Javascript 从节点js中的html响应获取值,javascript,node.js,Javascript,Node.js,对nodejs来说非常陌生,但没有找到类似的帖子。我正试图从下面代码得到的html响应中获取数据clp课程id const https = require('https') const options = { hostname: 'www.udemy.com', path: '/course/az-303-microsoft-azure-architect-practice-test-2020/', method: 'GET' } const req

对nodejs来说非常陌生,但没有找到类似的帖子。我正试图从下面代码得到的html响应中获取
数据clp课程id

const https = require('https')
  
const options = {
    hostname: 'www.udemy.com',
    path: '/course/az-303-microsoft-azure-architect-practice-test-2020/',
    method: 'GET'
  }
  
  const req = https.request(options, res => {
    console.log(`statusCode: ${res.statusCode}`)
  
    res.on('data', d => {
     // process.stdout.write(d)
    })
  })
  
  req.on('error', error => {
    console.error(error)
  })
  
  req.end()
html响应示例(仅给出响应的一部分):


//用于IE的Polyfill,以修复与new Event()和new CustomEvent()相关的错误
// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill
(功能(){
if(typeof window.CustomEvent==“function”)返回false;
函数CustomEvent(事件,参数){
params=params |{气泡:false,可取消:false,细节:未定义};
var evt=document.createEvent('CustomEvent');
evt.initCustomEvent(事件、参数气泡、参数可取消、参数细节);
返回evt;
}
CustomEvent.prototype=window.Event.prototype;
window.CustomEvent=CustomEvent;
window.Event=CustomEvent;
})();

只是利用迈克的建议

async function getCourseCode() {
    try {
        let response = await fetch('https://www.udemy.com/course/az-303-microsoft-azure-architect-practice-test-2020/');
        let body = await response.text();
        console.log(response.status);
        //console.log(body);
        let responseBody = body.match(/data-clp-course-id="(\d+)"/)
        let courseID = responseBody[1];
        console.log(courseID);
    }
    catch(exception){
        console.log(exception);
    }
}

getCourseCode();

html.match(/data clp course id=“(\d+)/)
?请求代码似乎不相关,您可以从硬编码到数据的字符串开始,最好显示提取它的尝试。顺便说一句,欢迎使用HTML解析器,如对您得到的响应普遍认可的语法分析器,以便您可以查询结果DOM。在那之前,你只需要HTML,它只是一个巨大的字符串。另外,我建议不要使用内置的
http
,因为
fetch(“http://wherever.com然后(res=>doSomethingWith(res.text())
比使用自己的URL获取机制容易得多。
async function getCourseCode() {
    try {
        let response = await fetch('https://www.udemy.com/course/az-303-microsoft-azure-architect-practice-test-2020/');
        let body = await response.text();
        console.log(response.status);
        //console.log(body);
        let responseBody = body.match(/data-clp-course-id="(\d+)"/)
        let courseID = responseBody[1];
        console.log(courseID);
    }
    catch(exception){
        console.log(exception);
    }
}

getCourseCode();