时间:2021-05-26
简介
一般批量爬取视频或者图片的套路是,使用爬虫获得文件链接集合,然后通过 writeFile 等方法逐个保存文件。然而,头条的视频,在需要爬取的 html 文件(服务端渲染输出)中,无法捕捉视频链接。视频链接是页面在客户端渲染时,通过某些 js 文件内的算法或者解密方法,根据视频的已知 key 或者 hash 值,动态计算出来并添加到 video 标签的。这也是网站的一种反爬措施。
我们在浏览这些页面时,通过审核元素,可以看到计算后的文件地址。然而在批量下载时,逐个手动的获取视频链接显然不可取。开心的是,puppeteer 提供了模拟访问 Chrome 的功能,使我们可以爬取经过浏览器渲染出来的最终页面。
项目启动
命令
npm inpm startNotice: 安装 puppeteer 的过程稍慢,耐心等待。
配置文件
// 配置相关module.exports = { originPath: 'https://'); await page.screenshot({path: 'example.png'}); await browser.close();})();视频文件下载方法
下载视频主方法
const downloadVideo = async video => { // 判断视频文件是否已经下载 if (!fs.existsSync(`${config.savePath}/${video.title}.mp4`)) { await getVideoData(video.src, 'binary').then(fileData => { console.log('下载视频中:', video.title) savefileToPath(video.title, fileData).then(res => console.log(`${res}: ${video.title}`) ) }) } else { console.log(`视频文件已存在:${video.title}`) }}获取视频数据
getVideoData (url, encoding) { return new Promise((resolve, reject) => { let req = http.get(url, function (res) { let result = '' encoding && res.setEncoding(encoding) res.on('data', function (d) { result += d }) res.on('end', function () { resolve(result) }) res.on('error', function (e) { reject(e) }) }) req.end() })}将视频数据保存到本地
savefileToPath (fileName, fileData) { let fileFullName = `${config.savePath}/${fileName}.mp4` return new Promise((resolve, reject) => { fs.writeFile(fileFullName, fileData, 'binary', function (err) { if (err) { console.log('savefileToPath error:', err) } resolve('已下载') }) })}目标网站:西瓜视频
项目功能:下载头条号【维辰财经】下的最新20个视频
项目地址:Github 地址
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
普通方法:爬取梨视频importreimporttimeimportrandomimportrequestsfromlxmlimportetreestart_t
你好,甩手工具箱中的爬取产品就可以整篇爬取阿里的产品,大批量爬取产品,单独爬取产品导出来淘宝数据包,导出来数据文件立即导进淘宝助理上传入自身店面,爬取产品的协助
分析需求:爬取西刺代理网免费高匿代理,并保存到MySQL数据库中。这里只爬取前10页中的数据。思路:分析网页结构,确定数据提取规则创建Scrapy项目编写ite
本实例主要进行线程池创建,多线程获取、存储视频文件梨视频:利用线程池进行视频爬取#爬取梨视频数据importrequestsimportrefromlxmlim
使用pycharm批量爬取小说爬取小说的思路:1.获取小说地址本文以搜书网一小说为例《嘘,梁上有王妃!》目录网址:https:///XuLiangShangYo