http.get获取数据(爬虫)

http.get获取数据

const http=require('http')//引入http模块,做数据请求

//http://m.maoyan.com/ajax/movieOnInfoList?token=  这是请求的地址
const options={//配置项,也可以是上面的网址
  hostname: 'm.maoyan.com',
  port: 80,
  path: '/ajax/movieOnInfoList',
  method: 'get',
  headers:{//请求头信息
  'Accept': 'application/json, text/javascript, */*; q=0.01',
  'Referer': 'http://m.maoyan.com/',
  'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
  'X-Requested-With': 'XMLHttpRequest'
  }
}

http.get(options, (res) => {
    //这里是数据判断开始  有状态码、错误处理、数据类型判断
  const { statusCode } = res;
  const contentType = res.headers['content-type'];

  let error;
  if (statusCode !== 200) {
    error = new Error('请求失败\n' +
                      `状态码: ${statusCode}`);
  } else if (!/^application\/json/.test(contentType)) {
    error = new Error('无效的 content-type.\n' +
                      `期望的是 application/json 但接收到的是 ${contentType}`);
  }
  if (error) {
    console.error(error.message);
    // 消费响应数据来释放内存。
    res.resume();//如果有错误,重新提交
    return;
  }
//这里是数据判断结束
  res.setEncoding('utf8');
  let rawData = '';
  res.on('data', (chunk) => { rawData += chunk; });//请求得到的数据分片连续的传输
  res.on('end', () => {//数据传输结束
    try {
      const parsedData = JSON.parse(rawData);//对获得的数据转成对象格式
          parsedData.movieList.map(item=>{
          console.log(item.nm)
      })
      ;
    } catch (e) {
      console.error(e.message);
    }
  });
}).on('error', (e) => {
  console.error(`出现错误: ${e.message}`);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值