返回信息流先描述一下我的问题:
我是想通过爬虫得到一些豆瓣小站(如http://site.douban.com/reading/)的录制的MP3的url。
通过分析网页源码,发现如下代码:
song_records = [{"name":"【美文】《致我们终将逝去的青春》-晓果主播","url":"aHR0cDovL21yNC5kb3ViYW4uY29tLzIwMTMwNjAxMjMyNS9mNjcyMTc5NTA2Y2RkNTEyNGI0Y2JjNzViMTU3N2JjOC92aWV3L211c2ljaWFubXAzL21wMy94MTQ2MTU1NTQubXAz","cover":"http:\/\/img3.douban.com\/view\/site\/small\/public\/75af3ac0b3609bd.jpg","isDemo":false,"rawUrl":"http:\/\/mr4.douban.com\/201306012325\/f672179506cdd5124b4cbc75b1577bc8\/view\/musicianmp3\/mp3\/x14615554.mp3","id":"370874"},……];
其中的rawUrl的值就是MP3文件的地址:
http://mr4.douban.com/201306012325/f672179506cdd5124b4cbc75b1577bc8/view/musicianmp3/mp3/x14615554.mp3
分析这个链接地址:http://mr4.douban.com/为所在的服务器地址,201306012325为获取网页的时间(精确到分钟,每分钟变化),后面的f672179506cdd5124b4cbc75b1577bc8为一个字符串的md5编码(每分钟变化);其后的/view/musicianmp3/mp3/x14615554.mp3都不变。
问题描述:
为何一个MP3文件的链接地址为何会每分钟变化,过一会儿访问该地址就会显示403错误(错误里显示是Nginx服务器)。该如何得到他们的变化规律,时间后的MD5值的字符串的原值是什么??这样的变化是如何在nginx服务器上实现,抑或是何种nginx的高级特性?
感谢阅读,真心求教!
这是一条镜像帖。来源:北邮人论坛 / www-technology / #20368同步于 2013/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
求教web大神(尤其是nginx大神)
ldd2008
2013/6/1镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nginx只是个代理服务器吧.不一定逻辑就是nginx实现的...
如果非得nginx实现的话可以用nginx+lua的openresty啊,tengine啥的能做到.
至于那串编码是不是md5hash的都不确定..(没研究过豆瓣的hash技术..)
不过官方不是给了我下载地址吗?
http://site.douban.com/reading/widget/playlist/13496948/download?song_id=370874
哇咔咔,果真大神啊!!回复中很多单词听都没听过!![ema13]
话说你是如何找到它的官方下载地址的??真心求教!![ema25]
PS:今天早上刚醒来就拿手机看到你的回复,而且解决了我的问题,真是振奋人心的一天啊,感谢啊!!
【 在 zzjin 的大作中提到: 】
: nginx只是个代理服务器吧.不一定逻辑就是nginx实现的...
: 如果非得nginx实现的话可以用nginx+lua的openresty啊,tengine啥的能做到.
: 至于那串编码是不是md5hash的都不确定..(没研究过豆瓣的hash技术..)
: ...................
如果访问 http://site.douban.com/reading/widget/playlist/13496948/download?song_id=370874 这个网址的话,根据抓包的结果来看,它会重定向到如 http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3 这样的链接。
但如果不登陆的话,访问上面的网址也会提示403错误!
唉,本来想得到mp3直接的链接地址,就不用登录什么的就可以下载该mp3,现在看很难啊!!
PS:如果LZ想研究一下豆瓣的hash技术,该从何入手,如何搞起!!
【 在 zzjin 的大作中提到: 】
: nginx只是个代理服务器吧.不一定逻辑就是nginx实现的...
: 如果非得nginx实现的话可以用nginx+lua的openresty啊,tengine啥的能做到.
: 至于那串编码是不是md5hash的都不确定..(没研究过豆瓣的hash技术..)
: ...................
貌似不是哎亲~你试试http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3
似乎不用登陆也是可以直接下载的~应该是和http://*/2013060*****/* 这个串的日期时间有关吧~这个链接服务器似乎是按日期时间来生成的吧~应该会为你保留一天吧~(具体多长时间没研究)
【 在 ldd2008 的大作中提到: 】
: 如果访问 http://site.douban.com/reading/widget/playlist/13496948/download?song_id=370874 这个网址的话,根据抓包的结果来看,它会重定向到如 http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3 这样的链接。
: 但如果不登陆的话,访问上面的网址也会提示403错误!
: 唉,本来想得到mp3直接的链接地址,就不用登录什么的就可以下载该mp3,现在看很难啊!!
: ...................
问问豆瓣员工... 不过估计他们不会告诉你, 因为这个是有版权的, 不然他们就成了从犯了.
【 在 ldd2008 的大作中提到: 】
: 如果访问 http://site.douban.com/reading/widget/playlist/13496948/download?song_id=370874 这个网址的话,根据抓包的结果来看,它会重定向到如 http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3 这样的链接。
: 但如果不登陆的话,访问上面的网址也会提示403错误!
: 唉,本来想得到mp3直接的链接地址,就不用登录什么的就可以下载该mp3,现在看很难啊!!
: ...................
这个保留时间绝对不是1天,具体多少不好说,但两三个小时后便失效
【 在 tonyjansan 的大作中提到: 】
: 貌似不是哎亲~你试试http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3
: 似乎不用登陆也是可以直接下载的~应该是和http://*/2013060*****/* 这个串的日期时间有关吧~这个链接服务器似乎是按日期时间来生成的吧~应该会为你保留一天吧~(具体多长时间没研究)
:
这个必须不能问啊!这不是置别人于不义之地吗!
现在就差那个中间的似乎是md5编码的东西,如果这玩意可以搞定,那就万事无忧了!
豆瓣的技术很强?
【 在 AlexRezit 的大作中提到: 】
: 问问豆瓣员工... 不过估计他们不会告诉你, 因为这个是有版权的, 不然他们就成了从犯了.
:
你要地址干嘛...
【 在 ldd2008 的大作中提到: 】
: 这个必须不能问啊!这不是置别人于不义之地吗!
: 现在就差那个中间的似乎是md5编码的东西,如果这玩意可以搞定,那就万事无忧了!
: 豆瓣的技术很强?
: ...................