手机
当前位置:查字典教程网 >脚本专栏 >python >Python实现的下载8000首儿歌的代码分享
Python实现的下载8000首儿歌的代码分享
摘要:下载8000首儿歌的python的代码:复制代码代码如下:#-*-coding:UTF-8-*-frompyqueryimportPyQue...

下载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.*"(.*",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实现的下载8000首儿歌的代码分享】相关文章:

用python实现批量重命名文件的代码

python3.3教程之模拟百度登陆代码分享

Python操作列表的常用方法分享

python 生成不重复的随机数的代码

win7安装python生成随机数代码分享

python聊天程序实例代码分享

python实现apahce网站日志分析示例

python动态加载变量示例分享

python快速排序代码实例

python实现2014火车票查询代码分享

精品推荐
分类导航