#!/usr/bin/env python2
# coding:utf-8 import urllib
import re
import sys
import urllib2 # xml => http://www.xiami.com/widget/xml-single/sid/1769215777 # string = "5h3%..i%2323F27%_3ueb5cc554e525-ntA2fx.2%9F211_5l%ty5d227E4-E8E%ut%FiicF2532759E.3h%1%7b7261%4%5lp2mlao9F25%6738mF_3654e7884585El%F5emm52%529774pakDeE98%5a%E%E-" def parse_location(location_str):
row = int(location_str[0])
encrypt_location = location_str[1:]
enc_loc_len = len(encrypt_location)
column = enc_loc_len / row
remainder = enc_loc_len % row
loc_matrix = []
index = 0
for i in range(0, remainder):
loc_matrix.append(encrypt_location[index: index + column + 1])
index += column + 1
for i in range(0, row - remainder):
loc_matrix.append(encrypt_location[index: index + column])
index += column
location = ''
for j in range(0, column + 1):
for i in range(0, row):
if len(loc_matrix[i]) > j:
location += loc_matrix[i][j]
location = urllib.unquote(location).replace('^','')
return location #print parse_location(string) def main(url):
#print url
xml = urllib2.urlopen(url).read()
en_url = re.findall("(?<=<location><!\[CDATA\[).*?(?=]]></location>)",xml)
print parse_location(en_url[0]) if __name__ == "__main__":
if len(sys.argv) != 2:
print u"无效的参数,它应该像这个样子:http://www.xiami.com/song/3284034?spm=a1z1s.7154410.1996860142.3.LxxgQW"
else:
m = re.search("(?<=http://www.xiami.com/song/)\d*?(?=\?spm=)",sys.argv[1])
if m:
main("http://www.xiami.com/widget/xml-single/sid/"+m.group())
else:
print u"无效的参数,它应该像这个样子:http://www.xiami.com/song/3284034?spm=a1z1s.7154410.1996860142.3.LxxgQW"

python 下载虾米音乐的更多相关文章

  1. [python] 1、python鼠标点击、移动事件应用——写一个自动下载百度音乐的程序

    1.问题描述: 最近百度总爱做一些破坏用户信任度的事——文库金币变券.网盘限速,吓得我赶紧想办法把存在百度云音乐中的歌曲下载到本地. http://yinyueyun.baidu.com/ 可问题是云 ...

  2. Xamarin.Android 实现虾米音乐搜索下载

    之前写过一篇博客,用api接口实现虾米音乐搜索功能,不过这个api接口被封了,所以只能获取到官方的一个音乐json数据,里面的下载地址是被加密过得,这里我会教大家如何用xamarin实现. 准备工作: ...

  3. Python 应用爬虫下载QQ音乐

    Python应用爬虫下载QQ音乐 目录: 1.简介怎样实现下载QQ音乐的过程: 2.代码 1.下载QQ音乐的过程 首先我们先来到QQ音乐的官网: https://y.qq.com/,在搜索栏上输入一首 ...

  4. 如何免费下载付费音乐歌曲,6个网站+8个APP

    现在听音乐的软件,QQ音乐,酷狗,网易云等,很多歌曲可以在线听. 但是下载某些歌曲或者在线听高品质无损的都需要付费. 这一期,给大家推荐的是免费下载付费歌曲工具,包括网站跟APP. 网站篇 1.VIP ...

  5. 基于jQuery虾米音乐播放器样式代码

    分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div c ...

  6. 【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

    实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart  难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install ...

  7. Asp.net 两个链接实现虾米音乐搜索

    起因 暑假刚结束,又要回到学校写代码了,本人写代码的时候特别喜欢听歌,一直使用的是虾米音乐,出于好奇,想给自己的网站集成虾米音乐搜索功能,但是一直找不到虾米开放api,所以只能自己找办法了,之后发现一 ...

  8. 使用 Google Chrome 数据抓包方式免费下载收费音乐

    对于每个有音乐细胞的 boys & girls 来说,听音乐的时候是不是会经常遇到如下图的问题. 自从音乐进入正版之后,很多歌曲只有付费用户才可以下载.虽然可以在线听,可是以我的倔脾气,就是喜 ...

  9. 亲测可用!免费下载QQ音乐大部分资源!

    优化后亲测可用!免费下载QQ音乐大部分资源 通知 时间问题 博客园这边暂时停更要下载的去GitHub或者90盘 GitHub项目地址 https://github.com/TotoWang-hhh/m ...

随机推荐

  1. WIFEXITED WEXITSTATUS WIFSIGNALED(转)

    wait的函数原型是: #include #include pid_t wait(int *status) 进 程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出 ...

  2. 用vs调试sql存储过程

    大家有没有给存储过程找错误的经历,一遍遍的去读sql代码,发现一个小错误可能都要用很长的时间,这次介绍用vs2010调试存储过程,用起来和在vs里调试代码一样,非常爽.           首先,打开 ...

  3. macOS SIP 权限设置

    1.macOS SIP 权限设置 对于 macOS 10.11+ 用户,由于系统启用了 SIP(System Integrity Protection), 导致 root 用户也没有权限修改 /usr ...

  4. appium简明教程(1)——appium和它的哲学世界

    什么是appium? 本文已经迁移到测试教程网,后续更新会在测试教程网更新. 下面这段介绍来自于appium的官网. Appium is an open-source tool you can use ...

  5. SharePoint CAML In Action——Part I

    在SharePoint中,我们经常要对List进行操作,比如要从List中取出相应的ListItem,利用CAML是个好办法.在没了解CAML之前,我是这样取数据的: MyList.Items.Cas ...

  6. php超时时间说明

    一,http请求超时时间 可能出现的场景: 1,curl进程运行了一个世纪还木结束,curl的时候设置了超时时间 --connect-timeout 1000 2,operation timed ou ...

  7. 实战Apache+Tomcat集群和负载均衡

    实战Apache+Tomcat集群和负载均衡 目录 1.    什么是J2EE集群... 3 1.1.     序言... 3 1.2.     基本术语... 3 伸缩性(Scalability): ...

  8. Caffe搭建:常见问题解决办法和ubuntu使用中遇到问题(持续更新)

    严正声明: 在linux下面使用命令行操作时,一定要懂得命令行的意思,然后再执行,要不然在不知道接下来会发生什么的情况下输入一通命令,linux很有可能崩掉. 因为在linux下面,使用sudo以及r ...

  9. [LintCode] Find the Connected Component in the Undirected Graph

    Find the Connected Component in the Undirected Graph Find the number connected component in the undi ...

  10. [svc]arpping链路层检测

    arping命令,测试链路层是否同 参考 yum install iputils -y arping - send ARP REQUEST to a neighbour host -b:用于发送以太网 ...