爬取a站视频,m3u8案例,acfun
  WIU1Qlm7CwPb 2023年11月02日 86 0

用python爬虫爬取acfun上的视频

公众号回复acfun获取源代码

看效果:


打开网站

爬取a站视频,m3u8案例,acfun_html

随便点一个视频

打开开发者模式

然后搜素m3u8,找到文件,查看url

爬取a站视频,m3u8案例,acfun_ide_02

爬取a站视频,m3u8案例,acfun_ide_03

这些就是一个一个的分割出来的ts片段

全局搜素url可以发现再页面源代码中就可以找到这个m3u8文件

所以思路是

1、访问视频页面

2、提取m3u8文件地址

3、访问下载文件中的ts片段


第一部分

访问视频页面,获取源码

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44",
    'Referer': 'https: // www.acfun.cn /'
}
    # 访问视频页获取源码
    response = requests.get(url=html_url,headers=headers)
    html_data = response.text
    # print(html)


第二部分

从源码中获取标题,m3u8文件

# 从源码中获取m3u8文件
    title = ''.join(re.findall('<title >(.*?) - AcFun弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ</title>',html_data))
    print(title)


    html = etree.HTML(html_data)


    json_data = re.findall('window.pageInfo = window.videoInfo = (.*?);{1}',html_data)[0]


    j1 = json.loads(json_data)
    m3u8_url = json.loads(j1["currentVideoInfo"]["ksPlayJson"])['adaptationSet'][0]['representation'][0]['backupUrl'][0]


    m3u8_data = requests.get(url=m3u8_url,headers=headers).text
    # print(m3u8_data)
    m3u8_data = re.sub('#E.*','',m3u8_data).split()
    # print(m3u8_data)


第三部分

循环下载.ts文件,保存

for ts in m3u8_data:
        ts_url = 'https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/'+ts
        ts_content = requests.get(url=ts_url,headers=headers).content
        with open(f'acfun/{title}.mp4',mode='ab') as f:
            f.write(ts_content)


    print('已保存完成!')

最后看效果

爬取a站视频,m3u8案例,acfun_html_04

爬取a站视频,m3u8案例,acfun_json_05

没问题

公众号回复acfun获取源代码

感谢观看



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  anLrwkgbyYZS   2023年12月30日   33   0   0 ideciciMaxideMax
WIU1Qlm7CwPb