使用TS爬虫爬取百度武汉疫情数据

近期疫情比较严重,每天起来看下疫情的通报数据,就想着使用技术做一些简单的东西,能否抓取百度网上公布的疫情数据

爬取网址:https://voice.baidu.com/act/n...

使用TS爬虫爬取百度武汉疫情数据_第1张图片

中间红色框框的数据
选择TypeScript,练习下TS的语法和使用
1.建立目录初始化
新建一个目录spiderTS
初始化npm init -y,
初始化TS的配置 tsc --init,生成tsconfig.json文件

目录结构如下
使用TS爬虫爬取百度武汉疫情数据_第2张图片
2.爬取数据处理
src的目录下主要2个文件:
spider.ts // 抓去数据,写入文件
whCovid19Data.ts //处理数据
要爬取网页的数据,主要使用的superagent的库,使用superagent.get(url)的方法获取到页面的数据
使用TS编写,因此要安装superagent的d.ts的库文件
执行
npm install --save @types/superagent
代码如下:

`import path from 'path'
import WhCovid19Data from './WhCovid19Data';
const whCovid19Data = WhCovid19Data.getInstance();
class Spider {

private filePath = path.resolve(__dirname,'../data/data.json')
constructor () {
    this.getHtmlContent();
}
async getHtml() {
   const url = await whCovid19Data.getUrl();
   const res = await superagent.get(url)
   return res.text;
}
writeFile(content: string) {
    fs.writeFileSync(this.filePath,content)
}
async getHtmlContent() {
    const htmlContent = await this.getHtml();
    const fileContent = whCovid19Data.handleData(htmlContent);
    this.writeFile(fileContent);
}

}
const spider = new Spider();`

2.whCovid19Data处理数据
对网页数据的处理用到cheerio库,类似jquery的语法,获取到对应数据,同样安装对应的的,cheerio.d.ts文件

网页上右键检查
使用TS爬虫爬取百度武汉疫情数据_第3张图片

需要取到以上数据

但是抓取到源代码,缺发现完全不一样(可以在网页上右键查看源代码)

使用TS爬虫爬取百度武汉疫情数据_第4张图片

推断下百度应该用类似react的第三方框架来动态渲染数据的,seo下爬取不到对应标签的数据

怎么办?

进一步全局搜索源代码,发现了我需要的数据,在

你可能感兴趣的:(javascript,typescript,node.js,npm)