(四)nodejs爬虫教程,解析电影网站输出json:爬取网页,解析html,转换成json输出

avatar

我们要抓的网站是一个电影网站,有四个分类

因为四个网站长的都一样,html的dom结构也一样,这里就只以其中一个为例介绍

以综合为例 首页地址 http://www.ygdy8.net/html/gndy/jddy/index.html 翻到下面可以看到它是有分页的,点一下下一页可以看到链接变成了 http://www.ygdy8.net/html/gndy/jddy/list_63_2.html

这时候可以把 list_63_2.html 改成 list_63_1.html 再看一下内容,跟首页一样的,这就好办了

router.get('/', async (ctx, next) => {
  const pageNo = ctx.request.query.pageNo || 1;
  const type = ctx.request.query.type || 'complex';
  const body = await request('http://www.ygdy8.net/html/gndy/jddy/list_63_' + pageNo + '.html', 'get', 'gb2312');
  const $ = cheerio.load(body);
  let list = [];
  $('table.tbspan').each((key, value) => {
    const title = $(value).find('.ulink').text();
    const url = 'http://www.ygdy8.net' + $(value).find('.ulink').attr('href');
    let time = $(value).find('tr').eq(2).find('td:last-child').text();
    // 去掉\n\t和空格
    time = time.replace(/\n|\t/g, '').trim();
    list.push({
      title: title,
      url: url,
      time: time,
    });
  })
  ctx.body = list;
})

输出

image

目前还没有回答,快来帮帮TA吧!
添加一条评论 请尽量发布对他人有帮助的评论

登录后可发布评论

登录 | Github登录