‘’’
    昨天的写法,经老师的讲解后,发现还可以精简,特记下!
    ‘’’

    1. import csv
    2. import requests
    3. import re
    4. url = 'https://www.kugou.com/yy/html/rank.html'
    5. res = requests.get(url) #发送请求
    6. html = res.text
    7. #通过正则来找自己想要的数据
    8. result = re.search(r'<ul>(.*?)</ul>', html, re.S)
    9. ul = result.group(1)
    10. data = re.findall(r'<a\s{2,}href="(.*?)".*?title="(.*?)-(.*?)".*?</a>', ul, re.S)
    11. #文件写入
    12. with open("song_list1.csv", "w", encoding='utf-8', newline='') as f:
    13. writer = csv.writer(f)
    14. writer.writerow(["链接", "歌手", "歌名"])
    15. writer.writerows(data)

    总结一下:
    看上面的代码有效的代码才13行,不得不惊叹python的优美!
    1)这一次用了re.search()和re.findall()两个方法就找到了所要的数据(老师的功力还是非常深的!)
    2) 因为re.findall()方法出来的数据形式就是列表,刚刚好就是csv写入的形式,所以又省几行代码了。