1. import csv
    2. import re
    3. import requests
    4. url = 'https://www.kugou.com/yy/html/rank.html'
    5. headers = {
    6. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'
    7. }
    8. res = requests.get(url, headers)
    9. html = res.text
    10. result = re.match(r'.*?(<div class="pc_temp_songlist pc_rank_songlist_short">(.*?)</div>)', html, re.S)
    11. ul = result.group(1)
    12. li = re.findall(r'<li.*?>.*?</li>', ul, re.S)
    13. pattern = re.compile(r'<li .*?title="(.*?)-(.*?)".*?>.*?<a.*?href="(.*?)".*?</a>.*?</li>', re.S)
    14. lst = []
    15. for i in li:
    16. li = pattern.match(i)
    17. tu = (li.group(1), li.group(2), li.group(3))
    18. print(tu)
    19. lst.append(tu)
    20. # 写入
    21. with open('酷狗音乐飙升榜.csv', 'w', encoding='utf-8-sig', newline='') as f:
    22. writer = csv.writer(f)
    23. writer.writerow(['歌名', '歌手', '详情网页'])
    24. writer.writerows(lst)