Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.JS:如何为特定数据刮取json页面_Json_Node.js_Web Scraping_Module - Fatal编程技术网

Node.JS:如何为特定数据刮取json页面

Node.JS:如何为特定数据刮取json页面,json,node.js,web-scraping,module,Json,Node.js,Web Scraping,Module,我想刮掉这一页: 对于特定数据,如formattedDate和description。如何在Node.JS中的模块中实现这一点。我很难理解Node.JS中的流程 任何帮助都会大有帮助,提前谢谢。非常简单,您可以导入请求模块并使用它。例如,请参见下面的代码 const request = require("request"); request("MY_URL", (error, response, body) => { console.log('body:', body); });

我想刮掉这一页:

对于特定数据,如formattedDate和description。如何在Node.JS中的模块中实现这一点。我很难理解Node.JS中的流程


任何帮助都会大有帮助,提前谢谢。

非常简单,您可以导入请求模块并使用它。例如,请参见下面的代码

const request = require("request");

request("MY_URL", (error, response, body) => {
  console.log('body:', body);
});
另外,你可以在这里试试这个

首先,您需要解析JSON,这允许您从接收到的JSON访问字段

const data = JSON.parse(body);
现在,如果您想访问某个事件的某些信息,您需要循环事件并访问所需内容,例如:

const events = data.bwEventList.events;
events.map((data, index) => console.log(data.calendar))
最终代码也来自nodeJS文档

请参阅
console.log(parsedData[“bwEventList”][“resultSize”])

将parsedData作为数组切片,直到得到所需的数据

谢谢您的回答。你能给我看一个可能的循环例子吗。我很难创建一个工作的..地图就是这样做的,看这里
    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}`);
    });