先检查一下我们需要准备的东西:
- Nodejs >= 8.9
- B站视频统计信息API:
https://api.bilibili.com/x/web-interface/archive/stat?aid=26186448
如果你已经准备好了,在这一章我们会实现一个非常简单的爬虫。
思路
爬虫的简化流程是这样的:
发送一个HTTP请求到目标服务器,服务器返回相应的数据
1 | +----------+ +-----------+ |
Coding
首先新建一个名为node-simple-spider
的文件夹,“发送一个HTTP请求”这个功能需要superagent
第三方库来实现,在文件夹node-simple-spider
下打开你的终端窗口,键入以下命令来安装superagent
的相关依赖:
1 | npm i superagent --save |
在文件夹里面创建一个名为index.js
的文件,用你最喜欢的编辑器打开它,键入以下内容
1 | const superagent = require('superagent') // 引入superagent包 |
然后在刚刚的终端窗口中键入以下命令运行这个程序:
1 | node index.js |
成功的话可以在终端看到以下输出
1 | node index.js |
这个Json就是我们所爬到的数据,里面包含了对应视频数据的播放数、弹幕数、回复、收藏等很多统计信息。
输出到文件
仅仅把爬取的内容打印到控制台显然是不够了,为了可以重复利用这些数据,我们可以把这些数据写入磁盘文件里面;代码如下:
1 | const superagent = require('superagent') |
再次运行代码,就会发现在文件夹里多了个data.json
文件,里面是我们爬到的数据。
注:fs.writeFile
每次调用重新生成文件,同名的旧文件会被覆盖;如果希望保留旧文件里的数据可以使用fs.appendFile
代替。
superagent
更加详细的语法可以参考这里