爬取网易云歌单里面音乐列表

""" 爬取网易云歌单里面音乐列表 """
import re
import xlwt
import xlrd
import xlutils.copy
# 将复制到的源码放在一个html文件里面 以rb格式读入
with open('3.html', 'rb') as f:
    # 读取之后需要进行解码
    html = f.read().decode('utf-8')
# 使用第一次匹配获取一收歌曲的全部信息
pattern = r'<tr.+?</tr>'
# 设定flags = re.S 匹配包括换行符在内的所有字符
res_list = re.findall(pattern=pattern, string=html, flags=re.S)
# 可以输出匹配到的结果的长度 核对是否匹配完整
print(len(res_list))
# print(res_list[0])
# 用来保存歌曲名和作者名的数组
name_author_list = []
# 同时匹配歌曲名和作者名的正则表达式
name_author_pattern = r'data-res-name="(.+?)".+?data-res-author="(.+?)"'
# 从每首歌曲中匹配出需要的信息
for item in res_list:
    name_author_list.extend(re.findall(pattern=name_author_pattern, string=item, flags=re.S))
# 打印结果核对
print(name_author_list[0])
# print(len(name_author_list))
# 创建excel工作空间
data = xlrd.open_workbook('歌单.xls')
ws = xlutils.copy.copy(data)
# workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
# 创建sheet对象
sheet = ws.add_sheet('sheet3', cell_overwrite_ok=True)
sheet.write(0, 0, '歌名')
sheet.write(0, 1, '作者')
# 将匹配到的结果写入excel
for index, item in enumerate(name_author_list):
    sheet.write(index + 1, 0, name_author_list[index][0])
    sheet.write(index + 1, 1, name_author_list[index][1])
ws.save(r'歌单.xls')

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务