-
Notifications
You must be signed in to change notification settings - Fork 0
/
fetchBaiduLrc.py
67 lines (50 loc) · 1.27 KB
/
fetchBaiduLrc.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/python
import sys,urllib
# check if content has results
def hasResultsBaidu(content):
return 1
# phase content from baidu results
def phaseBaiduContent(content):
urls=[]
if hasResultsBaidu(content)<1:
return urls
tag="down-lrc-btn"
startIndex=content.find(tag);
while startIndex>0:
startIndex=startIndex+len(tag);
tailIndex=content.find("href=",startIndex);
if tailIndex<0:
url=content[startIndex:]
else:
url=content[startIndex:tailIndex]
# phase href
url=url.split("'",4)
url=url[3];
# add new url
urls.append(url);
# find next tag
startIndex=content.find(tag,startIndex);
return urls;
# check input
inputLen=len(sys.argv)
if inputLen<2:
print "Usage:"
print sys.argv[0],"search_keys"
else:
baiduBaseUrl="http://music.baidu.com/search/lrc?key="
url=baiduBaseUrl+sys.argv[1]
wp=urllib.urlopen(url);
print"url:",url
print "start downloading..."
# download webpage
content=wp.read()
## print content
#print content
#
res=phaseBaiduContent(content);
if len(res)>=1:
for i in range(0,len(res)):
res[i]=baiduBaseUrl+"#"+res[i]
if len(res)>=1:
for i in res:
print i