当前位置: 首页 > news >正文

双语对照网站门户网站作用

双语对照网站,门户网站作用,淘宝直通车,淄博营销网站建设偶尔听歌的时候发现了一个很小众的音乐分享网站#xff0c;邻居的耳朵#xff0c;有个人的电台类型#xff0c;属于音乐分享文字分享#xff0c;觉得很不错。从域名来看#xff0c;属于多米旗下的网站#xff1a;http://ear.duomi.com/ 看来多米收购了很多这样的小站邻居的耳朵有个人的电台类型属于音乐分享文字分享觉得很不错。从域名来看属于多米旗下的网站http://ear.duomi.com/  看来多米收购了很多这样的小站包括之前的songtaste也被多米收下了。         针对这样的网站尝试着自己去发掘音乐的真实链接然后得到一个下载小工具有了这么个初衷就开始尝试寻找真实链接的蛛丝马迹了。首先从crifan大神那里学习到可以利用IE提供的F12功能去分析一系列的请求过程然后可以得到下面的一个记录          然而这条记录是如何得到的呢从抓取包的记录里面完全没有一些记录不像crifan在分析songtaste的时候那么复杂这里就是比较突兀的出现了请求这个url的http的get请求。然而可以看到这个请求是flash播放器发起的所以一个不错的方法就是将上面的flash播放器下载然后进行反编译查看一下flash播放器大概是如何发起请求的。     这里有一个在线反编译swf的网站http://www.showmycode.com/ 我把swf的播放器下载然后提交得到类似如下的代码其实不会AS的代码不过扫到下面的时候感觉loadsound应该就是我想要的百度下果然src参数应该就是需要的音乐的地址了但是src怎么传入进来的似乎没有从这个代码中感受的到毕竟不会as这里不深入研究了从网页的源代码了解一下看能否发现一些线索。          打开网页的源代码查看会发现这行非常像想要的信息但是soundfile似乎加密了一样。这里的加密必定是可逆的所以尝试了一下MD5和BASE64的解码果然BASE64可以解析出地址     http://stream0.kxt.fm/dj/dangnikaishitingbuqizhegeshijiedeshengyin.mp3     算是得到了想要的音乐地址结果了。               接下来应该是从音乐地址进行下载了但是这里存在一个问题自己并未解决因为自己尝试利用解析出的地址下载的时候出现拒绝访问目前没找到好的解决方法如果有遇到这种情况有解决方案的人提供下思路。            上述分析完之后就尝试利用python简单的还原一下上面的过程然而下载的部分还没找到解决方案。     这个问题的来源其实就是因为没有完全模拟IE9中F12捕获的请求参考评论中方法服务器那边应该有check Referer这个头。但是由于之前用chrome插件postman怎么仿真header都无法成功这里吐槽一下postman这个插件这里找了其他的chrome的http request插件竟然成功获取了音乐数据。     看来这个问题解决了这里就可以下载音乐了方法即在http请求的时候参照设定一下header的信息最重要的信息就是Referer信息了表明你是flash播放器的身份~服务器才无法知道你到底是不是播放器。     代码实现的时候是利用urllib的urlretrieve方法获取文件网上关于urllib如何设置header信息的方法特别少大多都会让你选择利用urllib2代替不过找了好久还是找到了替代的方法。参考python的一个mail list     https://mail.python.org/pipermail/python-list/2009-August/547234.html     给出的解决方案的代码如下 其中addheader是继承下来的Urlopener里的方法这里直接拿来借用urllib的原因就没有继续深究。 import urllibclass AppURLopener(urllib.FancyURLopener):version App/1.7referrer http://ear.duomi.com/wp-content/plugins/audio-player/assets/player.swf?ver2.0.4.1def __init__(self, *args):urllib.FancyURLopener.__init__(self, *args)if self.referrer:self.addheader(Referer, self.referrer)urllib._urlopener AppURLopener()          代码主要基于urllib打开网页然后利用re模块进行正则表达式的匹配出相应的模块组合成想要的信息。其中base64解码的时候出现了问题这里的方法是利用号补齐。     其中python的正则表达式参考                 http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html     base64遇到“incorrect padding”问题参考 http://stackoverflow.com/questions/2941995/python-ignore-incorrect-padding-error-when-base64-decoding        #codingutf-8import urllib import re import base64 import time import sysearurl http://ear.duomi.com/?p296462 class AppURLopener(urllib.FancyURLopener):version App/1.7referer http://ear.duomi.com/wp-content/plugins/audio-player/assets/player.swf?ver2.0.4.1def __init__(self, *args):urllib.FancyURLopener.__init__(self, *args)if self.referer:self.addheader(Referer,self.referer)class EarPageAnalysis:def __init__(self):self.title self.singer self.starttime self.article self.musicurl self.musicname def analysis(self,responsebody):#title,singer,starttimetss rpstrong(.*)br /(.*)br /(.*)br /(.*)/strong/ptsspattern re.compile(tss,re.S)tsslist re.findall(tsspattern,responsebody)self.title tsslist[0][0]self.singer tsslist[0][1]self.starttime tsslist[0][2]#articlearti r/p.*p(.*)/p.*pspan stylecolor: #808000;artipattern re.compile(arti,re.S)artilist re.findall(artipattern,responsebody)self.article artilist[0]#musicurlmusic rAudioPlayer.embed\(.*,.*\{.*soundFile:(.*)\}\);musicpattern re.compile(music,re.S)musiclist re.findall(musicpattern,responsebody)missing_padding 4 - len(musiclist[0]) % 4if missing_padding:musiclist[0] b * missing_paddingself.musicurl base64.b64decode(musiclist[0])tmplist self.musicurl.split(/)self.musicname tmplist[len(tmplist) - 1]def saveMusic(self):urllib._urlopener AppURLopener()def reportHook(copiedBlocks, blockSize, totalFileSize):if copiedBlocks 0:print Begin to download, total size %d % (totalFileSize)else:print Downloaded bytes: %d -- %d % (copiedBlocks * blockSize,totalFileSize)urllib.urlretrieve(self.musicurl,self.musicname,reportHook)def showInfo(self):print self.titleprint self.singerprint self.starttimeprint self.articleprint self.musicurl#test a best ear url page urllib.urlopen(earurl) responsebody page.read() pa EarPageAnalysis() pa.analysis(responsebody) pa.showInfo() pa.saveMusic()简单的解析结果如下            音乐也下载成功了
http://www.zqtcl.cn/news/184345/

相关文章:

  • 建设领域行政处罚查询网站wordpress数据库发文章
  • 怎么做网页的多开器宿迁seo优化
  • 别人帮做的网站怎么修改病句店铺引流的30种方法
  • 网站备案幕布怎么申请绍兴cms建站模板
  • 做网站熊掌号软件设计公司排名
  • 深圳 做网站学做西点的网站
  • 静态网站安全性百度服务平台
  • 网站vi设计公司网站建设app
  • 书店网站建设策划书总结每天看七个广告赚40元的app
  • 做网站的属于什么专业成都广告制作安装公司
  • 天津市网站建设公司网站制作费用
  • 网站制作公司 郑州wordpress图片中文不显示解决
  • 网站建设模式有哪些方面jquery做的装修网站
  • 佛山手机建网站企业网站公司单位有哪些
  • 给企业做网站的平台有没有专门做衣服搭配的网站
  • 青岛本地网站最近军事新闻大事
  • 潍坊哪里有做360网站的成都官微最新发布
  • 还有哪些网站可以做淘宝活动企业建设网站的方式
  • 上海技术公司做网站2022引流人脉推广软件
  • 网站排名优化技术安徽省城乡和建设厅网站
  • 平阴县建设工程网站英文网站模板制作
  • 网站制作超链接怎么做厦门公司建站
  • 阿里云做的网站怎么备份建筑设计网站issuu
  • 网上做设计网站广西做网站找谁
  • 网站优化成本建设项目网站备案申请表
  • 做公众号首图网站上海短期网站建设培训
  • 网站开发最好佛山优化网站排名
  • 服务器搭建网站打不开网站建设信息平台
  • 宽屏蓝色企业网站源码如何编辑网站标题
  • 免费搭建手机网站广告公司怎么取名