吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14529|回复: 70
收起左侧

[Python 转载] 【Python开源】抖音热门BGM爬虫下载~~~~

  [复制链接]
珍珠奶茶丶板牙 发表于 2018-7-22 19:49
本帖最后由 珍珠奶茶丶板牙 于 2018-7-22 19:53 编辑

下午无聊在某网上刷了会儿抖音,发现有些音乐还是挺好听的,可以用来做手机铃声,于是想办法从某网上把歌曲爬下来
代码仅供学习,可能代码中涉及到网站链接,请管理宽恕
QQ截图20180722193958.png
[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Time    : 2018/7/22 18:04
# Author  : Bnightning
# Site    : https://www.bnightning.cn
# File    : douyin.py
# Software: PyCharm
# Python Version : 3.6

import requests
from bs4 import BeautifulSoup
import time


def download_file(src, file_path):
    r = requests.get(src, stream=True)
    f = open(file_path, "wb")
    for chunk in r.iter_content(chunk_size=512):
        if chunk:
            f.write(chunk)
    return file_path


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

save_path = "H:\\Music\\douyin\\"
url = "https://kuaiyinshi.com/hot/music/?source=dou-yin&page=1"
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'lxml')
max_page = soup.select('li.page-item > a')[-2].text
for page in range(int(max_page)):
    page_url = "https://kuaiyinshi.com/hot/music/?source=dou-yin&page={}".format(page + 1)
    page_res = requests.get(page_url, headers=headers)
    soup = BeautifulSoup(page_res.text, 'lxml')
    lis = soup.select('li.rankbox-item')
    singers = soup.select('div.meta')
    music_names = soup.select('h2.tit > a')
    for i in range(len(lis)):
        music_url = "http:" + lis[i].get('data-audio')
        print("歌名:" + music_names[i].text, singers[i].text, "链接:" + music_url)
        try:
            download_file(music_url,
                          save_path + music_names[i].text + ' - ' + singers[i].text.replace('/', ' ') + ".mp3")
        except:
            pass
    print("第{}页完成~~~".format(page + 1))
    time.sleep(1)

免费评分

参与人数 10吾爱币 +8 热心值 +10 收起 理由
Vikingboat + 1 + 1 我很赞同!
zhao1125 + 1 + 1 感谢!
yangld + 1 + 1 谢谢@Thanks!
zheshen + 1 + 1 谢谢@Thanks!
食髓知味苦 + 1 谢谢@Thanks!
lilihuakai + 1 + 1 我很赞同!
wdn5227615 + 1 + 1 谢谢@Thanks!
shine9529 + 1 谢谢@Thanks!
l12h1 + 1 + 1 我很赞同!
Zc2455 + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

and1=1 发表于 2018-7-23 09:47
没有注释.差评(手动狗头)
菜鸟出学习 发表于 2018-7-22 20:42
我记得有个网站可以下载下来无水印的视频,就算有水印,提取一下应该可以用来吧。不过还是没有你这个方便
Zc2455 发表于 2018-7-22 20:10
葫芦炒鸡蛋 发表于 2018-7-22 20:25
本帖最后由 葫芦炒鸡蛋 于 2018-7-22 20:27 编辑

for page in range(int(max_page))、for i in range(len(lis))这种写法不Pythonic,
最好写成for i in lis:
如果要用索引的话写成for index, i in enumerate(lis):  # index是索引
笨笨猪 发表于 2018-7-22 20:31
哈哈,最近再学Python的Scrapy框架,但是BS4这个库还真的用得少,基本用re和requests。先mark住,算一个项目练手
无天体 发表于 2018-7-22 22:26
刚开始学爬虫,谢谢楼主分享
maiyi2005 发表于 2018-7-23 10:14
感谢楼主的汤,呵呵
树哥树先生 发表于 2018-7-23 10:21 来自手机
生命苦短,我用python3
 楼主| 珍珠奶茶丶板牙 发表于 2018-7-23 10:49
Rullec 发表于 2018-7-23 10:04
赞一下楼主。
根据我之前的经验,最好对savepath那里加一层过滤:有一些字符是win系统不允许作为文件名的 ...

谢谢,我也是新手,才学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 13:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表