westlife73 发表于 2023-11-1 15:53:19

如何利用cheerio库采集携程视频


家好,前几天有人问我,能不能用cheerio库编写一个专门采集携程相关视频的程序,今天它来了。下面的代码简单移动,而且都有非常清晰的中文解释,以方便大家学习,一起来看看吧。

```javascript

const cheerio = require('cheerio');

const axios = require('axios');

// 设置代理服务器信息

const proxyHost = 'www.duoip.cn';

const proxyPort = 8000;

// 使用axios模块发送GET请求,并设置代理服务器信息

axios.get('https://www.ctrip.com/', {

https: {

agent: new https.Agent({

rejectUnauthorized: false,

proxy: {

host: proxyHost,

port: proxyPort

}

})

}

})

.then(response => {

// 使用cheerio库解析返回的HTML内容

const $ = cheerio.load(response.data);

// 获取视频链接

const videoUrl = $('video').attr('src');

// 使用axios模块发送GET请求,下载视频文件

axios.get(videoUrl)

.then(response => {

// 将下载的文件保存到当前目录下

fs.writeFileSync('video.mp4', response.data);

console.log('下载成功');

})

.catch(error => {

console.log('下载失败', error);

});

})

.catch(error => {

console.log('请求失败', error);

});

```

这段代码首先使用axios模块发送一个GET请求,获取携程网站的HTML内容。然后,使用cheerio库解析返回的HTML内容,获取视频链接。接着,使用axios模块发送一个GET请求,下载视频文件,并将其保存到当前目录下。如果在任何步骤中发生错误,代码将捕获错误并打印错误信息。请注意,这段代码需要在支持Node.js的环境中运行。此外,由于网站可能使用了其他的安全措施,这段代码可能无法成功采集到过多的视频文件。你可以根据需要修改代码,例如添加错误处理代码,或者使用其他方法来绕过网站的屏蔽。
页: [1]
查看完整版本: 如何利用cheerio库采集携程视频