最近研究了一下抖音的爬虫,目前实现了热门话题和热门音乐下面所有相关视频的爬取,并且我已经将该爬虫打包成了一个 Python 库并发布,名称就叫做 douyin,利用该库可以使用不到 10 行代码完成热门视频的下载、相关音乐的下载以及结构化信息的存储。

本文就来详细介绍一下这个库的用法和一些核心逻辑实现。

实例演示

在开始介绍之前,我们就先看看这个库能达到怎样的爬取效果吧,这里我们想要爬取的部分是这这样的:

这里是抖音搜索界面热门话题和热门音乐部分,每一个话题或音乐都有着非常高的热度,而且每个热门话题或音乐下面都是相关的抖音视频。

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

听起来似乎挺繁琐的是吧?其实有了 douyin 这个库,我们不到 10 行代码就可以完成上面的任务了!其 GitHub 地址是:https://github.com/Python3WebSpider/DouYin。

首先第一步我们需要安装一下 douyin 库,命令如下:

pip3 install douyin

使用示例如下:

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])
# 循环爬取抖音热榜信息并下载存储
for result in douyin.hot.trend():
    for item in result.data:
        # 爬取热门话题和热门音乐下面的所有视频,每个话题或音乐最多爬取 100 个相关视频。
        downloader.download(item.videos(max=100))

好,这样就完成了,运行这段代码,即可以完成热门话题、热门音乐下面所有视频和音乐的爬取,并将相关信息存储到 MongoDB 数据库。

另外值得注意的是,在运行这段代码之前首先需要安装好 MongoDB 数据库并成功开启服务,这样才能确保代码可以正常连接数据库并把数据成功存储。

我们看下运行效果:

Item <Topic: <1565818716518401, panama>>
Processing <Video: <6616517521098935565, 真香#panama>> ...
Processing <Video: <6500385230921141518, 哈哈哈哈哈>> ...
...
Processing <Video: <6479958542747962637, ©著作权归作者所有:来自51CTO博客作者mb5fe159f193922的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 网易云音乐评论爬取。
  2. Python数据可视化:网易云音乐歌单
  3. QQ音乐评论爬取
  4. 44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?
  5. 收藏这些API,获取网易云音乐数据超轻松
  6. Python爬取网易云音乐1万条评论,感受到疫情下的真情
  7. 分享一个PHP写的命令行音乐搜索下载器
  8. HTML5 标签audio添加网页背景音乐代码
  9. 一个在线音乐软件的故事(三、音乐从哪里来?)

随机推荐

  1. Android将drawable图像转化为二进制字节
  2. ubuntu 安装 android studio
  3. 在已有的Android工程中接入ReactNative
  4. Android使用Eclipse打包
  5. Android中的Animation的使用
  6. android基础---->Parcelable的使用
  7. Android前向兼容的几个问题
  8. Android微信端的下拉刷新功能
  9. android 中文api (84) —— TrafficStats
  10. android4.0 开启硬件加速后应用运行出错