# -*- coding: utf-8 -*-

# @Author  : 王翔

# @JianShu  : 清风Python

# @Date    : 2019/7/31 23:25

# @Software : PyCharm

# @version  :Python 3.7.3

# @File    : DouYinMusic.py

import os

import requests

from bs4 import BeautifulSoup

import threading

import time

class DouYinMusic:

def __init__(self):

self.music_list = []

self.path = self.download_path()

@staticmethod

def download_path():

"""

获取代码执行目录,并在目录下创建Music文件夹

:return Music文件夹全路径

"""

base_dir = os.path.dirname(os.path.abspath(__file__))

_path = os.path.join(base_dir, "Music")

if not os.path.exists(_path):

os.mkdir(_path)

return _path

def get_request(self, url):

"""

封装requests.get方法

如果为网页请求,返回网页内容

否则,解析音乐地址,并返回音乐二进制文件

:param url: 请求url(分网页、音乐两类)

:return: 网页内容 & 音乐二进制文件

"""

r = requests.get(url, timeout=5)

if url.endswith('html'):

return r.text

else:

return r.content

def analysis_html(self, html):

"""

根据获取的网页内容,解析音乐名称、下载地址

调用音乐下载方法

:param html: 网页内容

"""

soup = BeautifulSoup(html, 'lxml')

# 根据关键字onclick查找每个下载地址

for tag_a in soup.findAll('a', attrs={'onclick': True}):

# 下载格式'("name","link","")',通过eval将str转化为tuple类型

link_list = eval(tag_a['onclick'][5:])

music_name, music_link = link_list[:2]

# 因为存在部分重复音乐,故设置判断下载过的音乐跳过

if music_name in self.music_list:

continue

self.music_list.append(music_name)

t = threading.Thread(target=self.download_music, args=(music_name, music_link))

time.sleep(0.5)

t.start()

def download_music(self, music_name, music_link):

"""

解析音乐文件,完成音乐下载

:param music_name: 音乐名称

:param music_link: 下载地址

"""

_full_name = os.path.join(self.path, music_name)

with open(_full_name + '.mp3', 'wb') as f:

f.write(self.get_request(music_link))

print("抖音音乐:{} 下载完成".format(music_name))

def run(self):

"""

主方法,用于批量生成url

"""

for page in range(1,55):

url = "http://douyin.bm8.com.cn/t_{}.html".format(page)

html = self.get_request(url)

self.analysis_html(html)

if __name__ == '__main__':

main = DouYinMusic()

main.run()

抖音python广告用的什么音乐_抖音上超好听的神曲音乐,Python教你一次性下载相关推荐

  1. python 抽奖 配音乐_抖音上超好听的神曲音乐,Python教你一次性下载

    不知道什么时候开始,中国出现了南抖音.北快手的互文格局(东市买骏马,西市买鞍鞯-).刚才提到了,之前比较喜欢刷抖音,对于我这种佛系程序猿,看网上这些整容妹子基本一个样.喜欢抖音主要是两个初衷,学做菜听 ...

  2. 抖音上超好听的神曲音乐,Python教你一次性下载!

    不知道什么时候开始,中国出现了南抖音.北快手的互文格局(东市买骏马,西市买鞍鞯-).刚才提到了,之前比较喜欢刷抖音,对于我这种佛系程序猿,看网上这些整容妹子基本一个样.喜欢抖音主要是两个初衷,学做菜听 ...

  3. python 广告联盟跳转链接_抖音视频加入广告跳转链接怎么做?

    抖音信息流广告是指将广告主投放的视频广告在抖音推荐频道的信息流中进行展示,同时支持从视频广告点击跳转至广告主设置的落地页,帮助广告主在抖音实现营销推广的目的.以下我们就来介绍下抖音视频加入广告跳转链接 ...

  4. 抖音python广告用的什么音乐_抖音上那些魔性洗脑神曲音乐,我用Python教你一次性下载...

    抖音捧红了很多人,也让很多本不怎么让大家熟知的歌曲.BGM,经过翻唱.混剪与视频搭配,从而传播大街小巷.什么"若不是你,突然闯进我心里-"亦或者"也许未来遥远在光年之外, ...

  5. 抖音上那些魔性洗脑神曲音乐,我用Python教你一次性下载

    抖音捧红了很多人,也让很多本不怎么让大家熟知的歌曲.BGM,经过翻唱.混剪与视频搭配,从而传播大街小巷.什么"若不是你,突然闯进我心里-"亦或者"也许未来遥远在光年之外, ...

  6. foobar2000 ios版怎么添加音乐_抖音怎么设置说完话后再放音乐 视频先配音后半段添加背景音乐...

    看到一个段子,双十一最该打折的是什么,答:双手.哈哈,昨天双十一购物狂欢,看到消息说双11当天全国处理亿快件,再创历史新高,也是辛苦各位快递员了.好啦,回归主题,继续给大家带来视频编辑教程.网上有很多 ...

  7. 抖音右上角一个小黄点是什么_抖音官方入驻视频号,释放了一个什么样的信号?...

    专注视频号观察第 328 篇这几天,视频号生态新入驻了一个企业号,在圈里引起不少的轰动,因为这个号的名字叫做---抖音.这件事在圈里引发不少的轰动,很多人惊叹:"连抖音都来开视频号了,你还在 ...

  8. 抖音一个老人和一个机器人歌曲_抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲...

    原标题:抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲 最近抖音非常火的一首歌曲<少年>,我还是从前那个少年,大家都非常想知道<少年>谁唱的?今天我们就来为大家整理一下梦然的个 ...

  9. 抖音一个老人和一个机器人歌曲_抖音空巢老人背景音乐是什么歌_抖音空巢老人背景音乐介绍_游戏吧...

    抖音中有一个空巢老人感动了很多的人,有许多小伙伴都想知道老人背景音乐是什么歌,下面游戏吧小编为大家带来抖音空巢老人背景音乐介绍,快来一起了解一下吧! 抖音空巢老人背景音乐介绍 抖音空巢老人是什么歌 这 ...

最新文章

  1. Floyd判圈算法(Floyd's cycle detection
  2. Eureka修改实例名称
  3. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...
  4. es6--set数组去重,Map数据结构
  5. Redis+Twemproxy安装与使用
  6. git pull提示remote error:CAPTCHA required
  7. idea 光标变粗 无法输入
  8. 剑指_6从尾到头打印链表(Python)
  9. 这款桌面分区软件太好用了
  10. scheme语言编写运行
  11. 结对编程——自动生成数学试卷的系统(javaswing,mysql)by 陈松刘宇航
  12. cocos 3D特效
  13. trie树模板(前缀树)
  14. 益交易德勤 区块链在全球公司的战略中 根深蒂固
  15. STM32F0 定时器中断 小白掉进的坑(FreeModbus)Timeout
  16. 星力+手游运营版本完整版打包下载 代理+服务端+后台+更新+APP
  17. Linux 2.6内核配置说明(7----Bus options (PCI, PCMCIA, EISA, MCA, ISA)总线选项)
  18. 5.1再次优化httpserver
  19. (尺取法模板题) QLU_ACM 2021 专题训练(一) D - Subsequence 题解
  20. java契约式编程_契约式设计 Design by contract

热门文章

  1. 模拟微信端进行投票手刷
  2. MySql计算两个日期时间的差函数
  3. DAMA|2021城市数据化治理需求日益剧增,如何抓住机会?
  4. CSS综合示例(博雅首页)
  5. 打造全新的在线游戏平台系统,融合音乐聚合搜索和影视在线观看
  6. Git切换远程分支,以及后续的pull和push操作
  7. conda安装jieba
  8. MySQL数据完整性(实体完整性、域完整性)
  9. leetcode 29.两数相除(python3)68ms
  10. MongoDB可视化客户端robo3tES