当前位置: 首页 > 编程笔记 >

Python实现的下载8000首儿歌的代码分享

冯渝
2023-03-14
本文向大家介绍Python实现的下载8000首儿歌的代码分享,包括了Python实现的下载8000首儿歌的代码分享的使用技巧和注意事项,需要的朋友参考一下

下载8000首儿歌的python的代码:


#-*- coding: UTF-8 -*-

from pyquery import PyQuery as py from lxml import etree import urllib import re import os import sys import logging

def format(filename):     tuple=(' ',''','\'')     for char in tuple:         if (filename.find(char)!=-1):             filename=filename.replace(char,"_")     return filename

def download_mp3(mp3_url, filename,dir):           f = dir+"\\"+filename     if os.path.exists(f):       logger.debug(f+" is existed.")       return           try:         open(f, 'wb').write(urllib.urlopen(mp3_url).read())         logger.debug(  filename + ' is downloaded.')     except:         logger.debug( filename + ' is not downloaded.')

        def download_all_mp3(start,end,dir,logger):   for x in range(start,end):     try:         url = "http://www.youban.com/mp3-d" + str(x) + ".html"         logger.debug(str(x) + ": "+url)         doc = py(url=url)         e = doc('.mp3downloadbox')         if e is None or e == '':           logger.debug(url+" is not existed.")           return                   e = unicode(e)         #logger.debug( e)         regex = re.compile(ur".*<h1>(.*)</h1>.*downloadboxlist.*?<a.*?\"(.*?)\"",re.UNICODE|re.S)         m = regex.search(e)         if m is not None:           title = m.group(1).strip()           title2 = str(x)+"_"+title + ".mp3"           #title2 = re.sub(' ','_',title2)           title2 = format(title2)           link = m.group(2)           #logger.debug( "title:" + title + " link:" + link)           if link == '' or title == '':             logger.debug(url + " is not useful")             continue           logger.debug(str(x)+": "+link)           download_mp3(link,title2,dir)     except:         logger.debug(url+" met exception.")         continue      

      if __name__ == "__main__":     dir_root = "e:\\song"     if sys.argv[3] != '': dir_root=sys.argv[3]         start,end = 1,8000     if sys.argv[1] >= 0 and sys.argv[2]>=0:       start,end = int(sys.argv[1]),int(sys.argv[2])       print ("Download from %s to %s.\n" % (start,end))              dir = dir_root + "\\"+str(start)+"-"+str(end)     if not os.path.exists(dir):       os.mkdir(dir)         print "Download to " + dir + ".\n"         logger = logging.getLogger("simple")     logger.setLevel(logging.DEBUG)      fh = logging.FileHandler(dir+"\\"+"download.log")     ch = logging.StreamHandler()     formatter = logging.Formatter("%(message)s")     ch.setFormatter(formatter)     fh.setFormatter(formatter)     logger.addHandler(ch)     logger.addHandler(fh)     download_all_mp3(start,end,dir,logger)

有需要的可以参考继续修改。

 类似资料:
  • 本文向大家介绍使用Python下载歌词并嵌入歌曲文件中的实现代码,包括了使用Python下载歌词并嵌入歌曲文件中的实现代码的使用技巧和注意事项,需要的朋友参考一下 使用python扫描本地音乐并下载歌词 这次这个真的是干货哦,昨晚弄了半晚上,,,,从8点吃完饭就开始写,一直到了快12点才弄好,,,新手,伤不起呀。。。。 先简单的说下吧,百度提供了一个音乐搜索的api,你想百度请求类似于 的地址,百

  • 本文向大家介绍Python实现多线程下载文件的代码实例,包括了Python实现多线程下载文件的代码实例的使用技巧和注意事项,需要的朋友参考一下 实现简单的多线程下载,需要关注如下几点: 1.文件的大小:可以从reponse header中提取,如“Content-Length:911”表示大小是911字节 2.任务拆分:指定各个线程下载的文件的哪一块,可以通过request header中添加“R

  • 本文向大家介绍Angular实现下载安装包的功能代码分享,包括了Angular实现下载安装包的功能代码分享的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: PS:下面在给大家分享一段代码关于angularJS实现锚点跳转实例 总结 以上所述是小编给大家介绍的Angular实现下载安装包的功能代码分享,希望对大家有所帮助,如果大家有任何疑问请给我留言,小

  • 本文向大家介绍python ftp 按目录结构上传下载的实现代码,包括了python ftp 按目录结构上传下载的实现代码的使用技巧和注意事项,需要的朋友参考一下 具体代码如下所示: 只完成了按目录结构上传,下载还没弄好。 补充:下面看下Python ftp 上传和下载 工具 python3 ftplib 上传 下载 总结 以上所述是小编给大家介绍的jpython ftp 按目录结构上传下载的实现

  • 本文向大家介绍Qt实现FTP的上传和下载的实例代码,包括了Qt实现FTP的上传和下载的实例代码的使用技巧和注意事项,需要的朋友参考一下 为了方便网络编程,Qt 提供了 Network 模块。该模块包含了许多类,本文介绍了Qt实现FTP的上传和下载,分享给大家 本来想简单抄抄书,随便手写个Ftp客户端的,结果发现教材上的是基于Qt4的QFtp类库,而在Qt5中取消了这一个类库(同时也取消了QHttp

  • 本文向大家介绍分析并输出Python代码依赖的库的实现代码,包括了分析并输出Python代码依赖的库的实现代码的使用技巧和注意事项,需要的朋友参考一下 用法: 分析一个脚本的依赖: analysis_dependency.py script1.py 递归分析依赖: analysis_dependency.py script1.py -r