论坛首页 编程语言技术论坛

实践百度加密链接解码并尝试Ruby抓取新歌Top100

浏览 6959 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-30  

 

配合之前 写好了的Decode.rb ,来个爬虫实践。

 

最新代码.tar.gz 打包下载

 

 

#...
text = lambda { |x| unicode.iconv(x.inner_text) }
link = lambda { |x| x[:href] }

whats = open(WHATS) { |f| Hpricot(f) }
singers = (whats/"/html/body/table[3]/tr/td/a[2]").collect &text
songs = (whats/"/html/body/table[3]/tr/td/a[1]")
song_names = songs.collect &text 
song_urls = songs.collect &link

File.open("top100_list.txt", "w") do |os|
  song_urls.each_with_index do |song, i|
    #exit if i == 20 # 这里控制排行榜歌曲数 
    os << "#{i+1}. #{singers[i]} - #{song_names[i]}\n"
    links = open(song){ |f| Hpricot(f) }
    urls = (links/"/html/body/div[2]/table[2]/tr/td[2]/a[1]").collect &link 
    urls[0..1].each do |url| # 这里控制每首歌的链接数
      page = Net::HTTP.get(URI.parse(URI.encode(url)))
      os << decode(unicode.iconv($1)) << "\n" if page =~ /var .="(.*)",J/
    end
    os << "\n"
  end
end
  

Hpricot的解析速度还是不错的。生成的文件内容(片断)如下:

写道
1. 成龙 - 难说再见
http://www.qzone168.com/fd/nszj2008.mp3
http://www.readerstimes.com/bbs/attachments/难说再见.wma

2. 李玖哲 - 别说
http://mp3.khtyut.com/2003-11-6/impurity/mule/2001-7-4/10852.wma
http://tdr518.xbzh.net/blog/UploadFiles/2008-8/826547620.mp3

3. 李宇春 - 梨花香
http://bbs.xuanmirs.net/UpFile/UpAttachment/2008-8/2008819221915.mp3
http://220.179.123.221:8031/Song/200872512124594322.mp3

4. 蔡健雅 - 依赖
http://mp3.ge520.com/20080731/001/M10565/10.Wma
http://www.5290007.cn/pycs/C/2008814498233/450352810.Wma

5. 梁静茹 - 今天情人节
http://mp3data.pizyy.cn:8898/19z/0/tingxingeyyyyqx080821/1/6ce54b8f1f83960b_7.wma
http://lan4.cha44.com/shuju4/7133/7.wma

6. 刘璇 - 出发
http://www.ikala.cn/images/0815/chufa.mp3
http://ent.sdinfo.net/yy/st/images/20080813/14740.mp3

7. 陈奕迅 - 歌颂
http://wma222.8easy.com:5118/wma5/2008/2008-8-19/48748_552188.wma
http://wma222.8easy.com:5118/wma5/2008/2008-8-19/ZWpqaG2VbG1jY2tsNQ$$.wma

8. 刘德华 - 未到伤心处
http://www.lingshengzhan.com/ting/刘德华-未到伤心处.mp3
http://www.lingshengzhan.com/ting/%C1%F5%B5%C2%BB%AA-%CE%B4%B5%BD%C9%CB%D0%C4%B4%A6.mp3

9. 袁泉 - 亚热带巧克力
http://mp3.ge520.com/20080803/001/M10376/3.Wma
http://lanjiao4.cha44.com/shuju4/6998/8.wma

10. 阿信 - 走火入魔
http://creativecommons.org.tw/formoz/people/auly7/auly7-2388.mp3
http://www.brantanus.com/download/public/zhouhuorumo.wma

14. 薛之谦 - 传说
http://www.hmdt.cn/hm_fm103/upfiles/排行榜/音乐排行榜(内地)/传说%20%20薛之谦.mp3
http://image.fotoever.com/PhotoServer01/Blog/Music/1135313/6152008120118AM30981.mp3

15. 梁静茹 - 如果能在一起
http://ting.aitingge.com/09/梁静茹-如果能在一起.Wma
http://s3.mp3-codes.com/747949340.mp3

29. 魏如萱 - 等等等
http://300.com.cn/mp3/魏如萱/泡泡/01.mp3
http://wma.92yaya.com/2008/92yaya_com_wma/2008heji/feizhuliuhuarenph/1/080528.wma


42. 陈奕迅 - 漂亮小姐
http://121.14.157.212:77/aaaa/陈奕迅/漂亮小姐.wma
http://old.q915.com/radio/attachments/discss/Chen/08.mp3

43. 莫文蔚 - 回家的路
http://www.bjtzr.com/zh/write/回家的路莫文蔚.wma
http://bbs.jiashan.gov.cn/music/name/808.wma

68. 古巨基 - 我们的彩虹
http://www.t8t8.com:8088/upload/music188/t8t8_20080531025316140.mp3
http://nnn.7t7t.com//pycs/Z/20086132920095/29203101.wma

69. 萧亚轩 - 之后
http://www.qianxun.com/UploadFiles/Music/576/196/57620080819164809384.wma
http://music.dlmu.net/mp3/x/xiaoyaxuan1/7.Wma

70. 王麟 - 勇敢的梦想
http://media.music.xunlei.com/resource/65/65285ad8c5e431fbe828f18b489becfe.mp3
http://fundown.china.com/music/wanglin/yonggandemengxiang.mp3

95. 品冠 - 现在就想见的人
http://www.longqiaohome.com/downloads/music/黄品源/08.现在就想见的人.mp3
http://www.kldktv.com/xgkbsong/xzjxjdr.wma

99. s.h.e - 让自己亮起来
http://www.ok665.com/mp3/rangzi.wma
http://www.ucoaaa.net.cn/wm510/1210731541.wma

100. js - 你是此生最美的风景
http://www.qianxun.com/UploadFiles/Music/576/196/57620080819005552884.mp3
http://sq.txdnl.com/mwt/j/s/i/j/jsij/playlists/183339/1499529.mp3
 

感兴趣的同学还可以参考这两篇帖子:

 

用Bash抓歌曲(不过我没运行成功)

 

获取百度下载地址的其他方法 (有Java/Python/Bash等)

 

 

   发表时间:2008-08-30  
发现了奇怪的现象:抓取的URL有中文乱码,文件名部分却正常。

27. 袁泉 - 宝宝睡
http://www.songdiy.com/UpLoadFile/涓娄紶鏂囦欢/200882333043641.mp3

30. 郑源 - 擦肩而过
http://hhhm.tjb8.cn/mp3/z10/%E8%BF%87%E6%9C%9F%E7%9A%84%E6%83%85%E4%B9%A6.mp3
http://hhhm.tjb8.cn/mp3/z10/%D0%D2%B8%A3%C1%B5%C8%CB.mp3
http://www.yiyinwang.com/UpLoadFile/200873116804431.mp3
http://v8.dj787.com/镟村姝屾洸璇疯繘dj787.com/wma/200808/无情的温柔%20郑源.wma
0 请登录后投票
   发表时间:2008-08-30  
用Python提取正常
是open-uri的bug :(
改用net/http,放上修正版。。。
0 请登录后投票
   发表时间:2008-11-05  
引用
00:20


厉害,这个时间还在写
0 请登录后投票
   发表时间:2008-11-07  
racnow 写道

引用00:20厉害,这个时间还在写

什么时候不重要,重要的是有没有状态
0 请登录后投票
   发表时间:2008-12-02  
报错了

C:\work\src\topmusic>ruby top100.rb
top100.rb:10:in `require': no such file to load -- hpricot (LoadError)
        from top100.rb:10
0 请登录后投票
   发表时间:2008-12-02  
楼上的看不懂错误信息么,装gem
gem install hpricot
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics