@@ -90,7 +90,7 @@ def analyze_sound(self, sound_id, headers):
90
90
return sound_info
91
91
92
92
# 解析专辑,如果成功返回专辑名和专辑声音列表,否则返回False
93
- def analyze_album (self , album_id ):
93
+ def analyze_album (self , album_id , headers ):
94
94
logger .debug (f'开始解析ID为{ album_id } 的专辑' )
95
95
url = "https://www.ximalaya.com/revision/album/v1/getTracksList"
96
96
params = {
@@ -99,10 +99,9 @@ def analyze_album(self, album_id):
99
99
"sort" : 0 ,
100
100
"pageSize" : 100
101
101
}
102
- headers = self .default_headers
103
102
headers ["referer" ] = f"https://www.ximalaya.com/album/{ album_id } "
103
+ retries = 5
104
104
while True :
105
- retries = 5
106
105
try :
107
106
response = requests .get (url , headers = headers , params = params , timeout = 15 )
108
107
except Exception as e :
@@ -117,6 +116,7 @@ def analyze_album(self, album_id):
117
116
if retries == 0 :
118
117
print (colorama .Fore .RED + f'ID为{ album_id } 的专辑解析失败!' )
119
118
logger .debug (f'ID为{ album_id } 的专辑解析失败!(getTracksList错误)' )
119
+ return False , False
120
120
pages = math .ceil (response .json ()["data" ]["trackTotalCount" ] / 100 )
121
121
sounds = []
122
122
for page in range (1 , pages + 1 ):
@@ -126,8 +126,8 @@ def analyze_album(self, album_id):
126
126
"sort" : 0 ,
127
127
"pageSize" : 100
128
128
}
129
+ retries = 5
129
130
while True :
130
- retries = 5
131
131
try :
132
132
response = requests .get (url , headers = headers , params = params , timeout = 30 )
133
133
except Exception as e :
@@ -136,12 +136,15 @@ def analyze_album(self, album_id):
136
136
logger .debug (traceback .format_exc ())
137
137
return False , False
138
138
if response .json ()["data" ]["tracks" ] == []:
139
+ print (f"第{ page } 页解析失败第{ 6 - retries } 次,共{ pages } 页" )
139
140
retries -= 1
140
141
else :
142
+ print (f"第{ page } 页解析成功,共{ pages } 页" )
141
143
break
142
144
if retries == 0 :
143
145
print (colorama .Fore .RED + f'ID为{ album_id } 的专辑解析失败!' )
144
146
logger .debug (f'ID为{ album_id } 的专辑解析失败!(getTracksList错误)' )
147
+ return False , False
145
148
sounds += response .json ()["data" ]["tracks" ]
146
149
album_name = sounds [0 ]["albumTitle" ]
147
150
logger .debug (f'ID为{ album_id } 的专辑解析成功' )
0 commit comments