一个爬取自己网易云歌单的爬虫

现在只弄了红心歌单
可以得出每个歌手的出现次数(不包括多人唱一首的情况)
还没有排序
也不能输出到文件
参考:https://blog.csdn.net/fu254983303/article/details/79434882

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
import requests
from bs4 import BeautifulSoup
import re
import os

kv={'user-agent':'Mozilla/5.0'}
r=requests.get('https://music.163.com/playlist?id=xxxxxxxxx',headers=kv,timeout=30)
html=r.text
reg_list = '<ul class="f-hide"><li>(.*?)</ul>'
reg_list = re.compile(reg_list, re.S)
content = re.findall(reg_list, html)
reg = '<a href="(.*?)">(.*?)</a></li>'
reg = re.compile(reg, re.S)
song_list = re.findall(reg, content[0])

i=0

singer=[]
for j in range(100):
singer.append([0]*2)
k=0
for key in song_list:
url="https://music.163.com"+song_list[i][0]
r=requests.get(url,headers=kv,timeout=30)
htm=r.text
reg_list2='<p class="des s-fc4">歌手:<span title="(.*?)">'
reg_list2=re.compile(reg_list2,re.S)
s=re.findall(reg_list2,htm)

j=0
while j<k:
if s!=singer[j][0]:
j+=1
else:
singer[j][1]+=1
break
if j==k:
if s!=singer[j][0]:
k+=1
singer[k][0]=s
singer[k][1]+=1
else:
singer[j][1]+=1
j+=1
i=i+1

print(singer)