zoukankan
html css js c++ java
[转]Python下载百度新歌100的代码
#
!/usr/bin/python
#
-*- coding: utf-8 -*-
#
Copyright (c) 2006 UbuntuChina <http://www.ubuntu.org.cn>
#
License: GPLv2
#
Author: oneleaf <oneleaf AT gmail.com>
import
httplib
import
re
import
urllib
import
os
import
locale
def
getdownurl(url):
urllist
=
[]
conn
=
httplib.HTTPConnection(
'
mp3.baidu.com
'
)
conn.request(
"
GET
"
,url)
response
=
conn.getresponse()
html
=
response.read()
conn.close()
expression
=
'
http://220.181.27.54/m(.*)</a>
'
listSentence
=
re.findall(expression, html)
lineno
=
0
while
lineno
<
len(listSentence):
mp3url
=
re.search(
'
title=(.*)onclick
'
,listSentence[lineno])
if
mp3url:
mp3url
=
mp3url.group(0)
mp3url
=
re.search(
'
http(\S*)
'
,mp3url)
if
mp3url:
mp3url
=
mp3url.group(0)
try
:
mp3url
=
mp3url.decode(
'
gbk
'
)
except
:
pass
urllist.append(mp3url)
lineno
+=
2
return
urllist
def
downmp3(url,author,name,filelist):
filename
=
author
+
"
-
"
+
name;
for
i
in
filelist:
name
=
unicode(i,locale.getpreferredencoding())
if
name.find(filename)
==
0:
print
u
"
文件已经下载,忽略。
"
return
1
urllists
=
getdownurl(url)
for
i
in
urllists:
print
u
"
正在连接
"
,i
ext
=
i[
-
4
:]
try
:
urlopen
=
urllib.URLopener()
fp
=
urlopen.open(i)
data
=
fp.read()
fp.close()
filename
=
filename
+
ext;
file
=
open(filename,
'
w+b
'
)
file.write(data)
file.close()
print
u
"
下载成功!
"
return
1
except
:
continue
return
0
if
__name__
==
"
__main__
"
:
conn
=
httplib.HTTPConnection(
'
list.mp3.baidu.com
'
)
conn.request(
"
GET
"
,
'
/list/newhits.html?id=1
'
)
response
=
conn.getresponse()
html
=
response.read().decode(
'
gbk
'
)
conn.close()
expression
=
'
<a href="http://mp3.baidu.com/m(.*)</a>
'
listSentence
=
re.findall(expression, html)
lineno
=
0
while
lineno
<
len(listSentence):
url
=
re.search(
'
(.*)target
'
,listSentence[lineno])
url
=
'
/m
'
+
url.group(0)[:
-
8
]
name
=
re.search(
'
blank>(.*)
'
,listSentence[lineno])
name
=
name.group(0)[
6
:]
author
=
re.search(
'
blank>(.*)
'
,listSentence[lineno
+
1
])
author
=
author.group(0)[
6
:]
print
u
"
开始下载
"
,author,name
filelist
=
os.listdir(
'
.
'
);
if
downmp3(url,author,name,filelist)
==
0:
print
u
"
下载
"
,author,name,u
'
失败!
'
lineno
+=
2
查看全文
相关阅读:
哈利波特买书事件
闹钟类app构想
梦断代码(7-尾)
梦断代码(3-6)
梦断代码(0-2)
环形二维数组求最大子矩阵
数组问题
电梯考察
四则运算的三张计划表
团队开发用户需求调研
原文地址:https://www.cnblogs.com/maplye/p/450118.html
最新文章
JAVA虚拟机JVM-3.内存模型
JAVA虚拟机JVM-2.垃圾回收
JAVA虚拟机JVM-1.内存区域
MYSQL的存储过程和函数简单写法
sql的函数和存储过程的区别
Zookeeper学习记录(二):使用以及配置
装服务器,测试数据库,简单的maven命令
安装部署服务器和javaweb项目
做完task1-21的阶段总结
task19-21
热门文章
task15-18
task10-14
task1-9
java类型系统知识点总结
java面向对象编程知识点总结
简单记事本&Java
第一个scrum会议
sprint计划会议结果
极速蜗牛组合成员介绍和题目简介
电梯调度算法
Copyright © 2011-2022 走看看