为了账号安全,请及时绑定邮箱和手机立即绑定

python 分析Google音乐下载地址(二)

标签:
Python


       前一阵写了一个分析Google音乐下载地址的文章(http://dashen2009.blog.51cto.com/714741/199981)只是分析出来下载页面的地址,但是通过那个地址下载页面出了问题,Google似乎在中间加了一个跳转页面,跳转页面通过Javascript跳到真正的下载页面,我用urllib只能下载到跳转页,没有找到下载页面的方法(如果哪位朋友知道方法请转告我一下,谢谢mail:mistral1986@gmail.com)今天在网偶然搜到一个帖子(http://forum.ubuntu.com.cn/viewtopic.php?f=73&t=194453&sid=6114953a98d40931c2fd74ffbc474d6a),用别的方法解决了这个问题。呵呵!原来Google音乐的下载页面是“http://www.google.cn/music/top100/musicdownload?id=”根本不用分析页面中的那个址(http://g.top100.cn/12174704/html/download.html?id=S3977fd7a5b3df7bc),只分析出来id就行了,用这个新地址下载页面就正确了,然后再分析出文件的下载地址便OK了。不过别高兴得这么早,新的问题又产生了,Google早就防着别人自动下它的音乐了,当你下载到一定到数量的时候(听别人说是100次),它便提示你输入验证码。我再从网上找找看有没有破解验证码的文章,先把写好的代码贴出来吧,代码还是有一点问题的,有时分析出的音乐下载数量少一些,比如一共有25首歌,总是比这个少,也没找到原因。以后再找找看看。把songlist.txt导入到迅雷下载就行了,我试了试,下载的时候有一些歌下不了。以后我再优化一下。

# coding=utf-8    

import urllib,re,sys,time 

 

 

url='http://www.google.cn/music/topiclisting?q=top100_duet_love_songs&cat=song' 

prefix='http://www.google.cn/music/top100/musicdownload?id=' 

downname='songlist.txt' 

html=urllib.urlopen(url).read() 

 

regx='下载.*window.*http.*\\\\x26resnum'            #\x26resnum很奇怪,明明看到的是一个‘\’可是匹配不出来,好像是有两个‘\\’    

reobj=re.compile(regx)    

reg='http.*mp3'     #文件下载地址 

rej=re.compile(reg)    

list=[] 

 

for match in reobj.finditer(html): 

        list.append(match.group()) 

         

id=[] 

 

for l in list: 

        id.append(prefix+urllib.unquote(l[-27:-10])) 

         

down=[] 

 

for i    in id: 

        html=urllib.urlopen(i).read() 

        time.sleep(1) 

        for match in rej.finditer(html): 

                down.append(urllib.unquote(urllib.unquote(match.group()))) 

 

                 

if len(down) >0: 

        file=open(downname,'w') 

        for d in down: 

                file.write(d+'\n') 

        file.close() 

 

print 'finish'     

         

 

©著作权归作者所有:来自51CTO博客作者redface999的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消