前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node 爬虫 --- bilibili 视频

node 爬虫 --- bilibili 视频

作者头像
小蔚
发布2021-02-04 10:52:41
8810
发布2021-02-04 10:52:41
举报
文章被收录于专栏:小蔚记录小蔚记录

一:上一节说到用node 爬虫网络图片

二:这一节 用node 爬 B 站 视频

  1. 用到的模块 ( https , ibili )

  2. 示例地址 ( https://www.bilibili.com/video/BV1FV411S7MV?p=3)

  3.代码

代码语言:javascript
复制
const ibili = require('ibili');   // 下载B站 模块

let https = require('https'); 

const fs = require('fs')     //没有用到  忽略不计

let url = 'https://api.bilibili.com/x/player/pagelist?bvid=BV1QE411s7hT&jsonp=jsonp';        // 网络请求,返回的json 数据

let item_url = 'https://www.bilibili.com/video/BV1FV411S7MV?p='; // json item_url  每个url的地址路劲,参数 ?p = i 

function video (url, item_url) {
    let app = https.request(url, res => {
        let chunks = [];
        res.on('data', chunk => {
            chunks.push(chunk)
        })
        res.on('end', () => {
            let html = Buffer.concat(chunks).toString('utf-8');   // 请求返回的json数据
            let arr = JSON.parse(html).data;             // 取到 res.data 存为数组

            for (let i = 10; i < arr.length; i++) {              // arr 遍历
                promise(item_url + i, i)                         // 异步请求 
            }
            async function promise (itemUrl, i) {                 //  promise
                let result = await ibili.downloadVideo({      // ibili.downloadVideo  查看官网 ( https://www.npmjs.com/package/ibili )
                    folder: 'list',
                    url: itemUrl,
                    filename: i
                })
                console.log(result)
            }
        })
    })

    app.end();
}
video(url, item_url)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档