安徽快3走势图Sahi案例分享:音乐批量下载

2018-01-10 10:57 行业动态

 

  偶然的机会,我发现了gmbox (。它是一款用Python编写的开源软件,放在Google Code上,可以提供音乐的批量下载。但是,用了不久,就发现它无法下载音乐了。在浏览了gmbox的Wiki之后,发现原因是这样的:针对每首歌曲,gmbox最终是得到并发送这样的一个URL并从返回的XML中得到mp3的下载链接、歌词以及专辑封面的下载链接的。这个URL中有一个参数叫sid,很显然它是一串经过加密的字符串。通过阅读gmbox的源码,不难发现它的生成规则。

  本文将要向大家分享一个音乐批量下载的脚本。它使用了Shell脚本和Sahi脚本。该实例向大家展示了Sahi在除了Web UI自动化测试以外的一个实际应用。在阅读本文前,如果您还不知道Sahi是什么,建议您可以先阅读一下我的另一篇文章《使用Sahi测试Dojo应用》,也可以直接访问[Sahi的官方网站]()。另外,您最好对Shell编程以及Linux中的sed,grep以及awk等命令能有一定的概念。

  2 如果之前你有在播放器里搜索过歌曲,当再次打开播放器时,哪些歌曲仍会显示在歌曲列表中。因此,需要先清除所有已有的歌曲。每首歌曲都会在一个class为artist-cell的td里显示歌手名称,统计这类td的数目就可以知道有多少首歌曲当前显示在列表里。如果$count的值大于0就说明有歌曲显示。接着就是点击“全选”checkbox。这里用的是near函数,还有一种方法是checkbox(count(“checkbox”,)-1)“,也就是得到最后一个checkbox,这个checkbox就是“全选”。最后点“删除”按钮并在跳出的确认对话框里点“Yes”(既然是简体中文网页,谷歌事实上应该显示“是”)。

  泡泡网数码相机频道1月15日索尼A5000是目前索尼微单家族中最轻便最女人的一款数码相机。它在延续NEX“奶昔”时尚小巧的外形基础上,采用了2010万像素Exmor APS HD CMOS影像传感器,并内置全新BIONZ X影像处理器,使它的感光度默认范围达到了ISO 100-16000,在夜晚昏暗环境拍摄时具有非常出色的降噪能力,同时在正常室外光线下又可获得高分辨率影像。此次索尼A5000套机首度标配了一个座充充电器,有了它以后我们就可以分别为多块电池进行充电,并且还不影响使用,这是过去线充所不能做到的,真心解决了用户使用困扰,此做法必须要给一百个赞!

  谷歌在线播放器的URL事实上是,而脚本使用的却是,为什么?这是尝试的结果。第一次打开在线播放器页面的时候,会出现一个“服务条款”页面问你是否同意。在使用播放前默认的URL的时候,Sahi无法点击到“同意”按钮。通过Chrome 的Developer Tools,我发现该页面有很多iframe构成,于是开始尝试用,这是它最内层真正显示播放器的iframe URL。这次,Sahi成功地点击了“同意”按钮进入播放器界面。 

  谷歌音乐搜索结果的显示是以一种增量的方式进行的,默认它会显示20首歌曲,然后随着你向下拖动,它会显示更多,直到最后出现“已经到达最后一条搜索结果”。所以Sahi脚本也必须模拟这种“滚动”操作来显示出所有结果。结束的标志就是看页面上是否出现了“_div(“已经到达最后一条搜索结果”)”这个元素。通过重新设定歌曲列表div的scrollTop属性可以实现“滚动”操作。根据Sahi脚本的编写要求,这类操作必须放在browser标签中 这就是scrollOnce函数。

  索尼A5000定位要高于NEX-3N并低于NEX-5T,其套机官方报价约为3580元,2月11日上市销售。目前索尼NEX-3N依然有卖,套机京东报价为2580元直达链接;索尼NEX-5T售价为3788元直达链接索尼A5000这次机身体积比之前的小型微单NEX-3N还要“苗条”约5%,机身重量仅有210克,是目前索尼最小巧轻便的微单相机。作为一款针对女性消费者的自拍微单,索尼A5000使用了3.0英寸可180度垂直翻折显示屏,可轻松完成各种自拍需要。另外它还内置了美肤效果和多种好玩的特效滤镜效果,我们拍完照片可通过一键无线WiFi传输功能或手柄侧面的NFC功能把美图发送到智能手机或平板电脑上,真正做到了简单分享趣味拍摄的体验。索尼A5000目前拥有4种机身颜色,包括特别讨妹子喜欢的粉色、白色,以及黑色和只能在索尼直营店买到的限量版银色。这款娇小可爱的自拍微单相机已经发布,我们在现场第一时间见到摸到了真机,下面就跟随镜头来一睹它的身影。

  进入你想要保存音乐文件的目录,运行“~/googlemusic/googlemusic.sh “阿黛尔(Adele)”(假设脚本解压缩在你的home目录下)。如果需要下载某位歌手的全部歌曲,为了确保最后下载歌曲的准确性,最好先到谷歌音乐上去尝试着搜索一下。例如,你如果在中输入“阿黛尔(Adele)”,就会发现搜索结果只包含阿黛尔的歌曲。但你若输入“Adele”,结果就相当混乱。所以,应该使用“阿黛尔(Adele)”。

  如果一切正常,在执行完以上的步骤之后,脚本会自动启动Sahi代理服务器。然后,弹出谷歌音乐的在线播放器页面,执行搜索。安徽快3开奖接着,会看到歌曲一首一首被“播放”。所谓“播放”,只是让浏览器发送获取歌曲的URL从而使Sahi记录下来。直到最后一首歌曲被“播放”完,Sahi代理服务器自动关闭。之后,wget开始下载mp3文件和lrc文件(如果有的线以及歌词文件会被下载到以搜索关键字命名的目录下。为了能够在未下载完的情况下,下次仍能继续下载而无需启动Sahi重新获取URL,所有获取歌曲信息的URL被保存在当前目录下的songs.txt中。如果需要,你可以运行“~/googlemusic/download.sh songs.txt “阿黛尔(Adele)”继续之前未完的下载。当中,第二个参数是下载目录,download会在下载前检查文件是否已经存在,如果存在就跳过。因此,你如果想完全重新下载所有歌曲,指定一个新的目录。安徽快3走势图Sahi案例分享:音乐批量下载