我想抓取此页面:calendar events
用于特定数据,例如formattedDate和description。我该如何在Node.JS的模块中做到这一点。我很难理解Node.JS中的过程。
任何帮助都会大有帮助,谢谢。
答案 0 :(得分:2)
这非常简单,您可以导入请求模块并使用它。例如,请参见下面的代码。
const request = require("request");
request("MY_URL", (error, response, body) => {
console.log('body:', body);
});
此外,您可以在Repl.it
上尝试此操作首先,您需要解析JSON,这使您可以访问收到的json中的字段。
const data = JSON.parse(body);
现在,如果要访问有关事件的某些信息,则需要循环事件并访问所需的信息,例如:
const events = data.bwEventList.events;
events.map((data, index) => console.log(data.calendar))
最终代码也位于Repl.it
答案 1 :(得分:0)
来自nodeJS文档here
const http = require('http');
http.get('http://umd.bwcs-hosting.com/feeder/main/eventsFeed.do?f=y&sort=dtstart.utc:asc&fexpr=(categories.href!=%22/public/.bedework/categories/sys/Ongoing%22%20and%20categories.href!=%22/public/.bedework/categories/Campus%20Bulletin%20Board%22)%20and%20(entity_type=%22event%22%7Centity_type=%22todo%22)&skinName=list-json&count=30', (res) => {
const { statusCode } = res;
const contentType = res.headers['content-type'];
let error;
if (statusCode !== 200) {
error = new Error('Request Failed.\n' +
`Status Code: ${statusCode}`);
}
if (error) {
console.error(error.message);
// consume response data to free up memory
res.resume();
return;
}
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => { rawData += chunk; });
res.on('end', () => {
try {
const parsedData = JSON.parse(rawData);
console.log(parsedData["bwEventList"]["resultSize"]);
} catch (e) {
console.error(e.message);
}
});
}).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});
请参见console.log(parsedData["bwEventList"]["resultSize"]);
将parsedData切片为一个数组,直到获得所需的内容