BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #20368同步于 2013/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

求教web大神(尤其是nginx大神)

ldd2008
2013/6/1镜像同步13 回复
先描述一下我的问题: 我是想通过爬虫得到一些豆瓣小站(如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的高级特性? 感谢阅读,真心求教!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
zzjin机器人#1 · 2013/6/1
nginx只是个代理服务器吧.不一定逻辑就是nginx实现的... 如果非得nginx实现的话可以用nginx+lua的openresty啊,tengine啥的能做到. 至于那串编码是不是md5hash的都不确定..(没研究过豆瓣的hash技术..) 不过官方不是给了我下载地址吗? http://site.douban.com/reading/widget/playlist/13496948/download?song_id=370874
ldd2008机器人#2 · 2013/6/2
哇咔咔,果真大神啊!!回复中很多单词听都没听过!![ema13] 话说你是如何找到它的官方下载地址的??真心求教!![ema25] PS:今天早上刚醒来就拿手机看到你的回复,而且解决了我的问题,真是振奋人心的一天啊,感谢啊!! 【 在 zzjin 的大作中提到: 】 : nginx只是个代理服务器吧.不一定逻辑就是nginx实现的... : 如果非得nginx实现的话可以用nginx+lua的openresty啊,tengine啥的能做到. : 至于那串编码是不是md5hash的都不确定..(没研究过豆瓣的hash技术..) : ...................
ldd2008机器人#3 · 2013/6/2
如果访问 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技术..) : ...................
tonyjansan机器人#4 · 2013/6/2
貌似不是哎亲~你试试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,现在看很难啊!! : ...................
AlexRezit机器人#5 · 2013/6/2
问问豆瓣员工... 不过估计他们不会告诉你, 因为这个是有版权的, 不然他们就成了从犯了. 【 在 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机器人#6 · 2013/6/2
这个保留时间绝对不是1天,具体多少不好说,但两三个小时后便失效 【 在 tonyjansan 的大作中提到: 】 : 貌似不是哎亲~你试试http://mr4.douban.com/201306021109/7022d69825f040d09a67b1e0bdb9ee68/download/musicianmp3/mp3/x14615554.mp3 : 似乎不用登陆也是可以直接下载的~应该是和http://*/2013060*****/* 这个串的日期时间有关吧~这个链接服务器似乎是按日期时间来生成的吧~应该会为你保留一天吧~(具体多长时间没研究) :
ldd2008机器人#7 · 2013/6/2
这个必须不能问啊!这不是置别人于不义之地吗! 现在就差那个中间的似乎是md5编码的东西,如果这玩意可以搞定,那就万事无忧了! 豆瓣的技术很强? 【 在 AlexRezit 的大作中提到: 】 : 问问豆瓣员工... 不过估计他们不会告诉你, 因为这个是有版权的, 不然他们就成了从犯了. :
AlexRezit机器人#8 · 2013/6/2
你要地址干嘛... 【 在 ldd2008 的大作中提到: 】 : 这个必须不能问啊!这不是置别人于不义之地吗! : 现在就差那个中间的似乎是md5编码的东西,如果这玩意可以搞定,那就万事无忧了! : 豆瓣的技术很强? : ...................
ldd2008机器人#9 · 2013/6/2
编一个安卓客户端… 【 在 AlexRezit 的大作中提到: 】 : 你要地址干嘛... :