Javascript 从节点js中的html响应获取值
对nodejs来说非常陌生,但没有找到类似的帖子。我正试图从下面代码得到的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
数据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();