python爬取app中的音频_Python爬取抖音APP,只需要十行代码

环境说明

环境:

python 3.7.1

centos 7.4

pip 10.0.1

部署

[root@localhost ~]# python3.7 --version

Python 3.7.1

[root@localhost ~]#

[root@localhost ~]# pip3 install douyin

有时候因为网络原因会安装失败,这时重新执行上面的命令即可,直到安装完成。

导入douyin模块

[root@localhost ~]# python3.7

>>>import douyin

>>>

导入如果报错的话,可能douyin模块没有安装成功。

下面我们开始爬…爬抖音小视频和音乐咯

[root@localhost douyin]# python3.7 dou.py

几分钟后…我们来看看爬的成果

可以看到视频配的音乐被存储成了 mp3 格式的文件,抖音视频存储成了 mp4 文件。

嗯…不错,哈哈。

py脚本

作者说,能爬抖音上所有热门话题和音乐下的相关视频都爬取到,并且将爬到的视频下载下来,同时还要把视频所配的音乐也单独下载下来,不仅如此,所有视频的相关信息如发布人、点赞数、评论数、发布时间、发布人、发布地点等等信息都需要爬取下来,并存储到 MongoDB 数据库。

import douyin

from douyin.structures import Topic, Music

# 定义视频下载、音频下载、MongoDB 存储的处理器

video_file_handler = douyin.handlers.VideoFileHandler(folder='./videos')

music_file_handler = douyin.handlers.MusicFileHandler(folder='./musics')

#mongo_handler = douyin.handlers.MongoHandler()

# 定义下载器,并将三个处理器当做参数传递

#downloader = douyin.downloaders.VideoDownloader([mongo_handler, video_file_handler, music_

file_handler])

downloader = douyin.downloaders.VideoDownloader([video_file_handler, music_file_handler])

# 循环爬取抖音热榜信息并下载存储

for result in douyin.hot.trend():

for item in result.data:

# 爬取热门话题和热门音乐下面的所有视频,每个话题或音乐最多爬取 10 个相关视频。

downloader.download(item.videos(max=10))

由于我这里没有mongodb所以,把这mongodb相关的配置给注释掉了。

====以下摘自作者====

代码解读

本库依赖的其他库有:aiohttp:利用它可以完成异步数据下载,加快下载速度

dateparser:利用它可以完成任意格式日期的转化

motor:利用它可以完成异步 MongoDB 存储,加快存储速度

requests:利用它可以完成最基本的 HTTP 请求模拟

tqdm:利用它可以进行进度条的展示

数据结构定义

如果要做一个库的话,一个很重要的点就是对一些关键的信息进行结构化的定义,使用面向对象的思维对某些对象进行封装,抖音的爬取也不例外。

在抖音中,其实有很多种对象,比如视频、音乐、话题、用户、评论等等,它们之间通过某种关系联系在一起,例如视频中使用了某个配乐,那么视频和音乐就存在使用关系;比如用户发布了视频,那么用户和视频就存在发布关系,我们可以使用面向对象的思维对每个对象进行封装,比如视频的话,就可以定义成如下结构:

class Video(Base):

def __init__(self, **kwargs):

"""

init video object

:param kwargs:

"""

super().__init__()

self.id = kwargs.get('id')

self.desc = kwargs.get('desc')

self.author = kwargs.get('author')

self.music = kwargs.get('music')

self.like_

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值