博客
关于我
Python爬虫训练:爬取酷燃网视频数据
阅读量:618 次
发布时间:2019-03-14

本文共 2102 字,大约阅读时间需要 7 分钟。

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有。如有问题请及时联系我们以作处理。

项目目标

本项目旨在通过爬虫技术抓取酷燃网(krcom.cn)相关视频和音频资源。具体来说,本项目包括以下工作:

  • 爬取酷燃网视频资源;
  • 爬取酷燃网音频资源;
  • 实现视频和音频的本地存储;
  • 提供爬虫代码示例。
  • 环境配置

    项目开发环境如下:

  • 语言:Python 3.6
  • IDE:PyCharm
  • 开源库:requests,re
  • 爬虫实现

    通过分析酷燃网视频页面的HTML结构,本项目实现了从页面中提取视频ID和标题,并通过API获取视频和音频资源URL。具体实现步骤如下:

  • 获取视频页面内容:通过请求酷燃网视频列表页面,并解析其中的视频信息。
  • 获取视频和音频资源URL:利用酷燃网提供的API,解析出视频和音频的M3U8链接,并根据链接提取实际的视频和音频资源URL。
  • 本地存储视频和音频:通过requests库向视频和音频资源URL发送GET请求,将返回的内容写入本地文件中。
  • 代码示例:

    import requests  import re  import pprint  def download_video(title, video_url):      filename = f'{"C:\\Users\\Administrator\\Desktop\\酷燃网\\"}{title}.mp4'      response = requests.get(video_url, headers=headers)      with open(filename, 'wb') as f:          f.write(response.content)  def download_mp3(title, mp3_url):      filename = f'{"C:\\Users\\Administrator\\Desktop\\酷燃网\\"}{title}.mp3'      response = requests.get(mp3_url, headers=headers)      with open(filename, 'wb') as f:          f.write(response.content)  headers = {      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'  }  # 通过循环请求视频列表页面  for page in range(0, 101, 20):      url = 'https://krcom.cn/aj/hot/loadingmore'      response = requests.get(url=url, headers=headers)      html_text = response.text.encode('utf-8').decode('unicode_escape')      # 解析视频ID和标题      video_ids = re.findall('vid=(.*?)\"', html_text, re.S)      titles = re.findall('

    (.*?)<', html_text, re.S) data = list(zip(video_ids, titles)) for vid, title in data: # 获取视频和音频资源URL dash_url = f'https://krcom.cn/aj/dash/media?media_ids={vid}&protocols=dash' dash_response = requests.get(dash_url, headers=headers) dash_data = dash_response.json() video_url = dash_data['data']['list'][0]['details'][1]['play_info']['url'] audio_url = dash_data['data']['list'][0]['details'][-1]['play_info']['url'] download_video(title, video_url) download_mp3(title, audio_url) print(title)

    注:本示例主要展示了如何实现视频和音频的抓取及本地存储功能。具体实现中需要注意M3U8格式的解码与处理,以及适当的错误处理机制。

    转载地址:http://mlioz.baihongyu.com/

    你可能感兴趣的文章
    Android之知识总结
    查看>>
    RabbitMq下载和安装linuxcenteros安装
    查看>>
    EasyUI的简单介绍
    查看>>
    android全方位性能优化方法
    查看>>
    Idea代码统计工具
    查看>>
    官网Tensorflow 移动开发流程
    查看>>
    python 安装scikit-learn遇到的问题解决方案
    查看>>
    HTTP 错误 500.21 - Internal Server Error 发布网站遇到这个错误
    查看>>
    微信小程序:出现脚本错误或者未正确调用 Page()错误解决
    查看>>
    海外引流怎么做?巨象指纹浏览器助你,人人都是产品经理
    查看>>
    Android获得缩略图的代码注释
    查看>>
    2017-05-11 DBA日记,导致log file sync单次等待超500ms又一可能
    查看>>
    MySQL查询---排序后取第一条数据
    查看>>
    初次安装webpack之后,提示安装webpack-cli
    查看>>
    Java后端服务明显变慢诊断思路
    查看>>
    idea选中文件时左侧菜单自动定位到文件所在位置
    查看>>
    java中带参数的try(){}语法——关闭资源
    查看>>
    JSuite 最新版下载试用2021版本
    查看>>
    使用FileZilla,FTP登录出现错误:FileZilla状态: 不安全的服务器,不支持 FTP over TLS
    查看>>
    Python模块学习--uuid
    查看>>