Python爬去百度音乐

编译器环境:Python3.6

代码:

#!/usr/bin/env python
#-*-coding=utf-8 -*-
#AUTHOR:duwentao

import  requests
import re
import json

def get_sids_by_name(name):
    url = 'http://music.baidu.com/search'
    data = {
        'key':name
    }
    reponse = requests.get(url,params=data)
    reponse.encoding='utf-8'
    html = reponse.text
    #print (html)
    ul = re.findall(r'<ul.*</ul>', html, re.S)[0]
    #print(ul)
    # 获取sid sid&quot;:551560464
    sids = re.findall(r'sid&quot;:(\d+),', ul, re.S)
    return sids

def get_mp3_by_id(song_id):
    song_id = song_id

    api ='http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.song.play&format=jsonp&callback=jQuery17205500581185420972_1513324047403&songid=%s&_=1513324048127' % song_id

    response = requests.get(api)
    data = response.text

    data = re.findall(r'\((.*)\)', data)[0]
    data = json.loads(data)
    title = data['songinfo']['title']
    mp3_url = data['bitrate']['show_link']
    mp3_data = requests.get(mp3_url).content

    with open('%s.mp3' % title,'wb') as f:
        f.write(mp3_data)
        print ("下载完成")
        f.close()
sid = input("请输入歌手的名字:")
sids = get_sids_by_name(sid)

for si in sids:
    print ("正在下载sid为",si)
    get_mp3_by_id(si)

执行结果:



微信公众号:

时间: 2024-11-29 09:14:30

Python爬去百度音乐的相关文章

用python实现的百度音乐下载器-python-pyqt-改进版

之前写过一个用python实现的百度新歌榜.热歌榜下载器的博文,实现了百度新歌.热门歌曲的爬取与下载.但那个采用的是单线程,网络状况一般的情况下,扫描前100首歌的时间大概得到40来秒.而且用Pyqt做的界面,在下载的过程中进行窗口操作,会出现UI阻塞的现象. 前两天有时间调整了一下,做了几方面的改进: 1.修改了UI界面阻塞的问题,下载的过程中可以进行其它的UI操作; 2.爬虫程序采用一个主线程,8个子线程的方式快速爬取,网络状况一致的情况下,将扫描100首歌曲的时间提高到了8.9秒左右:(本

python爬取百度翻译返回:{&#39;error&#39;: 997, &#39;from&#39;: &#39;zh&#39;, &#39;to&#39;: &#39;en&#39;, &#39;query 问题

解决办法: 修改url为手机版的地址:http://fanyi.baidu.com/basetrans User-Agent也用手机版的 测试代码: # -*- coding: utf-8 -*- """ ------------------------------------------------- File Name: requestsGet Description : 爬取在线翻译数据s Author : 神秘藏宝室 date: 2018-04-17 --------

Python(16)_爬去百度图片(urlopen和urlretrieve)

import urllib.request image_url = 'http://img18.3lian.com/d/file/201709/21/f498e01633b5b704ebfe0385f52bad20.jpg' response = urllib.request.urlopen(url=image_url) # 二进制的形式保存,方法一 with open('qing.jpg','wb') as fp: fp.write(response.read()) 方法2: 直接保存 imp

Python爬取百度贴吧内容

参考资料:https://cuiqingcai.com/993.html  即 静觅» Python爬虫实战二之爬取百度贴吧帖子 我最近在忙学校的一个小项目的时候涉及到NLP的内容.但是在考虑如何训练的时候却才懂什么叫巧妇难为无米之炊的滋味.中文语料库实在少的可怜,偶尔有一两个带标签的语料库,拿出一看,标注惨不忍睹,都让我怀疑是不是机器标注的.正应了那句话,人工智能,有多少智能就有多少人工. 有什么办法呢,硬着头皮,走一步是一步吧,总比停滞不前要好.项目涉及到帖子,那么我相信不管是谁,首先想到的

python爬取百度搜索图片

在之前通过爬取贴吧图片有了一点经验,先根据之前经验再次爬取百度搜索界面图片 废话不说,先上代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2017/7/22 10:44 # @Author : wqj # @Contact : [email protected] # @Site : # @File : test.py # @Software: PyCharm Community Edition import requests

Python抓取百度音乐。

今天挑战下百度音乐抓取,先用Chrome分析下请求的链接. 最关键的就是这个链接 http://play.baidu.com/data/music/songlink 请求这个带上songid就能返回给你音乐的json,那么怎么来获取songid呢? 点开 http://music.baidu.com/tag,找个标签进去.然后查看页面源码.发现有以下片段. 在每首歌曲的li元素的data-songitem里面恰巧包含我们需要的sid.ok,目标明确了,首先请求百度音乐的音乐标签页,然后获得sid

python 爬取百度url

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-08-29 18:38:23 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $Id$ 7 8 import requests 9 import sys 10 from Queue import Queu

python爬去电影天堂恐怖片+游戏

1.爬去方式python+selenium 2.工作流程 selenium自动输入,自动爬取,建立文件夹,存入磁力链接到记事本 3.贴上代码 #!/usr/bin/Python# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChai

python爬取百度搜索结果ur汇总

写了两篇之后,我觉得关于爬虫,重点还是分析过程 分析些什么呢: 1)首先明确自己要爬取的目标 比如这次我们需要爬取的是使用百度搜索之后所有出来的url结果 2)分析手动进行的获取目标的过程,以便以程序实现 比如百度,我们先进行输入关键词搜索,然后百度反馈给我们搜索结果页,我们再一个个进行点击查询 3)思考程序如何实现,并克服实现中的具体困难 那么我们就先按上面的步骤来,我们首先认识到所搜引擎,提供一个搜索框,让用户进行输入,然后点击执行 我们可以先模拟进行搜索,发现点击搜索之后的完整url中有一