- 论坛徽章:
- 0
|
本帖最后由 tyguaike 于 2013-01-30 16:48 编辑
怎么写一个脚本能从百度音乐top 500里下载音乐到我的电脑里
http://music.baidu.com/top/dayhot
百度Top 500下载经过分析可以实现,
但是本人的Shell水平有限,现把实现的思路整理出来。
第一步,取得Top 500的页面
SOURCE="music.baidu.com/top/dayhot"
wget ${SOURCE} -O top500
提取歌曲名和 id
cat top500 | grep "'sid'.*'sname'.*'author'"
得到下面的行怎么用正则得到 "391713 海阔天空" 生成一个文件列表
data-songitem = '{"songItem":{"sid":"391713","author":"\u4fe1\u4e50\u56e2"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '391713', 'sname': '海阔天空', 'author': '>信乐团' } } ">
wget "music.baidu.com/song/"${id}"/download?_o=%2Ftop%2Fdayhot" -O tmp
这里得到一个含有下载连接的页面 tmp
cat tmp | grep "<a.*xcode"
<a href="/data/music/file?link=http://zhangmenshiting.baidu.com/data2/music/33971202/23473715212400128.mp3?xcode=e2c42face0c3558110a0c31806938d9e " id="download" hidefocus="true" class="btn-download">下载</a><span class="btn-download-span"></span>
又要从这个页面里用正则得到这一行地址:
http://zhangmenshiting.baidu.com ... 58110a0c31806938d9e
然后就可以用这一行地址下载到歌典了
*********************************下面是比较完整的数据***************************************8
提取歌曲名和 id
cat top500 | grep "'sid'.*'sname'.*'author'"
<li data-songitem = '{"songItem":{"sid":"23473715","author":"sy"}}' class="lead-top first bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '23473715', 'sname': '江南Style', 'author': 'Psy' } } ">
<li data-songitem = '{"songItem":{"sid":"14950804","author":"\u66f2\u5a49\u5a77"}}' class="lead-top bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '14950804', 'sname': '我的歌声里', 'author': '曲婉婷' } } ">
<li data-songitem = '{"songItem":{"sid":"5966719","author":"\u51e4\u51f0\u4f20\u5947"}}' class="lead-top bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '5966719', 'sname': '最炫民族风', 'author': '凤凰传奇' } } ">
<li data-songitem = '{"songItem":{"sid":"1575873","author":"\u6c6a\u5cf0"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '1575873', 'sname': '北京北京', 'author': '汪峰' } } ">
<li data-songitem = '{"songItem":{"sid":"207737","author":"\u8fea\u514b\u725b\u4ed4"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '207737', 'sname': '放手去爱', 'author': '迪克牛仔' } } ">
<li data-songitem = '{"songItem":{"sid":"2104023","author":"\u4f83\u4f83"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '2104023', 'sname': '滴答', 'author': '侃侃' } } ">
<li data-songitem = '{"songItem":{"sid":"12380958","author":"\u5d14\u5b50\u683c"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '12380958', 'sname': '老婆最大', 'author': '崔子格' } } ">
<li data-songitem = '{"songItem":{"sid":"5071402","author":"\u9ad8\u8fdb,\u5c0f\u6c88\u9633"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '5071402', 'sname': '我的好兄弟', 'author': '高进,小沈阳' } } ">
<li data-songitem = '{"songItem":{"sid":"536010","author":"\u51e4\u51f0\u4f20\u5947"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '536010', 'sname': '荷塘月色', 'author': '凤凰传奇' } } ">
<li data-songitem = '{"songItem":{"sid":"7313936","author":"\u738b\u83f2,\u9648\u5955\u8fc5"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '7313936', 'sname': '因为爱情', 'author': '王菲,陈奕迅' } } ">
<li data-songitem = '{"songItem":{"sid":"13139228","author":"\u5f20\u60e0\u59b9"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '13139228', 'sname': '哭砂', 'author': '张惠妹' } } ">
<li data-songitem = '{"songItem":{"sid":"24492803","author":"\u5e73\u5b89"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '24492803', 'sname': '洋葱', 'author': '平安' } } ">
<li data-songitem = '{"songItem":{"sid":"2488100","author":"\u5218\u82e5\u82f1"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '2488100', 'sname': '为爱痴狂', 'author': '刘若英' } } ">
<li data-songitem = '{"songItem":{"sid":"5837361","author":"\u738b\u9e9f"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '5837361', 'sname': '伤不起', 'author': '王麟' } } ">
<li data-songitem = '{"songItem":{"sid":"223901","author":"\u674e\u4e3d\u82ac"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '223901', 'sname': '爱江山更爱美人', 'author': '李丽芬' } } ">
<li data-songitem = '{"songItem":{"sid":"2126014","author":"\u90d1\u667a\u5316"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '2126014', 'sname': '水手', 'author': '郑智化' } } ">
<li data-songitem = '{"songItem":{"sid":"14880387","author":"\u738b\u9e9f"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '14880387', 'sname': '思密达', 'author': '王麟' } } ">
<li data-songitem = '{"songItem":{"sid":"13762260","author":"\u9ad8\u5b89,\u676d\u5a07"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '13762260', 'sname': '一生无悔', 'author': '高安,杭娇' } } ">
<li data-songitem = '{"songItem":{"sid":"2121739","author":"\u6768\u94b0\u83b9"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '2121739', 'sname': '轻轻的告诉你', 'author': '杨钰莹' } } ">
<li data-songitem = '{"songItem":{"sid":"31496563","author":"\u5468\u6770\u4f26"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '31496563', 'sname': '红尘客栈', 'author': '周杰伦' } } ">
<li data-songitem = '{"songItem":{"sid":"974156","author":"\u5c60\u6d2a\u521a"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '974156', 'sname': '精忠报国', 'author': '屠洪刚' } } ">
<li data-songitem = '{"songItem":{"sid":"28790755","author":"\u5c0f\u6c88\u9633,\u6c88\u6625\u9633"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '28790755', 'sname': '你懂得', 'author': '小沈阳,沈春阳' } } ">
<li data-songitem = '{"songItem":{"sid":"10509017","author":"\u51b7\u6f20,\u6768\u5c0f\u66fc"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '10509017', 'sname': '我爱你胜过你爱我', 'author': '冷漠,杨小曼' } } ">
<li data-songitem = '{"songItem":{"sid":"10554229","author":"\u6c6a\u5cf0"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '10554229', 'sname': '存在', 'author': '汪峰' } } ">
<li data-songitem = '{"songItem":{"sid":"23149293","author":"\u674e\u4ee3\u6cab"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '23149293', 'sname': '我的歌声里', 'author': '李代沫' } } ">
<li data-songitem = '{"songItem":{"sid":"416940","author":"\u90d1\u6e90"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '416940', 'sname': '包容', 'author': '郑源' } } ">
<li data-songitem = '{"songItem":{"sid":"1026041","author":"\u5f20\u9707\u5cb3"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '1026041', 'sname': '爱我别走', 'author': '张震岳' } } ">
<li data-songitem = '{"songItem":{"sid":"23305140","author":"\u51e4\u51f0\u4f20\u5947"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '23305140', 'sname': '中国味道', 'author': '凤凰传奇' } } ">
<li data-songitem = '{"songItem":{"sid":"7316463","author":"\u9648\u5955\u8fc5"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '7316463', 'sname': '爱情转移', 'author': '陈奕迅' } } ">
<li data-songitem = '{"songItem":{"sid":"7333126","author":"\u9093\u4e3d\u541b"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '7333126', 'sname': '我只在乎你', 'author': '邓丽君' } } ">
<li data-songitem = '{"songItem":{"sid":"23159920","author":"\u90d1\u8679,\u674e\u4ee3\u6cab"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '23159920', 'sname': '如果没有你', 'author': '郑虹,李代沫' } } ">
<li data-songitem = '{"songItem":{"sid":"1449893","author":"\u6885\u8273\u82b3"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '1449893', 'sname': '亲密爱人', 'author': '梅艳芳' } } ">
<li data-songitem = '{"songItem":{"sid":"31387633","author":"\u5409\u514b\u96bd\u9038"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '31387633', 'sname': '彩色的黑', 'author': '吉克隽逸' } } ">
<li data-songitem = '{"songItem":{"sid":"27131218","author":"\u5409\u514b\u96bd\u9038"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '27131218', 'sname': 'Halo', 'author': '吉克隽逸' } } ">
<li data-songitem = '{"songItem":{"sid":"233076","author":"\u6c6a\u5cf0"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '233076', 'sname': '怒放的生命', 'author': '汪峰' } } ">
<li data-songitem = '{"songItem":{"sid":"5835631","author":"\u5c0f\u6c88\u9633"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '5835631', 'sname': '大笑江湖', 'author': '小沈阳' } } ">
<li data-songitem = '{"songItem":{"sid":"13139680","author":"\u5f20\u60e0\u59b9"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '13139680', 'sname': '我可以抱你吗', 'author': '张惠妹' } } ">
<li data-songitem = '{"songItem":{"sid":"416996","author":"\u90d1\u6e90"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '416996', 'sname': '爱情码头', 'author': '郑源' } } ">
<li data-songitem = '{"songItem":{"sid":"23150239","author":"\u591a\u4eae"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '23150239', 'sname': '小情歌', 'author': '多亮' } } ">
<li data-songitem = '{"songItem":{"sid":"274606","author":"\u5f20\u5b66\u53cb"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '274606', 'sname': '心如刀割', 'author': '张学友' } } ">
<li data-songitem = '{"songItem":{"sid":"7288694","author":"\u90a3\u82f1"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '7288694', 'sname': '相见不如怀念', 'author': '那英' } } ">
<li data-songitem = '{"songItem":{"sid":"247937","author":"\u96f7\u8bfa\u513f"}}' class=" bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '247937', 'sname': '别在我离开之前离开', 'author': '雷诺儿' } } "> |
|