网易云音乐热门作品名字和链接抓取(正则表达式篇)
IT共享之家
共 988字,需浏览 2分钟
· 2022-05-17
回复“资源”即可获赠Python学习资料
大家好,我是皮皮。
一、前言
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath
匹配拿不到东西,从响应来看,确实是可以看得到源码的。
二、实现过程
究其原因是返回的响应里边并不是规整的html
格式,所以直接使用xpath
是拿不到的。这里【Python进阶者】给了一个使用正则表达式的方法来实现的代码,代码如下。
# coding:utf-8
# @Time : 2022/5/9 23:46
# @Author: 皮皮
# @公众号: Python共享之家
# @website : http://pdcfighting.com/
# @File : 网易云音乐热门作品名字和链接(正则表达式).py
# @Software: PyCharm
#
# _ooOoo_
# o8888888o
# 88" . "88
# (| -_- |)
# O\ = /O
# ____/`---'\____
# .' \\| |// `.
# / \\||| : |||// \
# / _||||| -:- |||||- \
# | | \\\ - /// | |
# | \_| ''\---/'' | |
# \ .-\__ `-` ___/-. /
# ___`. .' /--.--\ `. . __
# ."" '< `.___\_<|>_/___.' >'"".
# | | : `- \`.;`\ _ /`;.`/ - ` : | |
# \ \ `-. \_ __\ /__ _/ .-` / /
# ======`-.____`-.___\_____/___.-`____.-'======
# `=---='
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# ☀佛祖保佑☀ 卍 ☀永无BUG☀
import requests
from lxml import etree
from fake_useragent import UserAgent
import re
class Wangyiyun(object):
def __init__(self):
self.base_url = 'https://music.163.com/discover/artist'
self.headers = {
'user-agent': UserAgent().random,
'referer': 'https://music.163.com/',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
}
def get_xpath(self, url):
res = requests.get(url, headers=self.headers)
# print(res.text)
# return etree.HTML(res.text)
html = res.text.replace('<适合才重要>', '适合才重要')
return html
def singers_parse(self, url, items):
html = self.get_xpath(url)
song_dict = {}
# a_lis = html.xpath('//div[@id="song-list-pre-cache"]/ul/li/a') # "song-list-pre-cache"
# trs = html.xpath('//*[@id="auto-id-z9nqqUPu9d9PcmOB"]/tbody/tr') # "song-list-pre-cache"
# print(len(trs))
# for tr in trs:
# song_name = tr.xpath('./td[2]//span/a/b//text()')[0]
# print(song_name)
# song_url = 'https://music.163.com' + tr.xpath('./td[2]//span/a/@href')[0]
# print(song_url)
# song_dict[song_name] = song_url
# pattern = re.compile(r'<(?P.*?)> ', re.S)
pattern = re.compile(r'>(?P.*?) .*?', re.S)
items = re.finditer(pattern, html)
for item in items:
song_url = item.group("song_url")
song_name = item.group("song_name")
print(song_url, song_name)
# items['所有歌曲:'] = song_dict
# print(items)
# name = items['歌手名:']
# print(f'歌手:{name} 的歌曲已经获取完毕!即将写入文件!')
# time.sleep(1)
# self.writer_data(items)
# print(f'歌手:{name} 的歌曲已经写入完毕!')
Wangyiyun().singers_parse(url='https://music.163.com/artist?id=50653542', items={})
这个代码亲测好使,运行之后结果如下。
三、总结
大家好,我是皮皮。网易云音乐热门作品名字和链接抓取(正则表达式篇),行之有效,难点在于那个正则表达式的构造。也欢迎大家积极尝试,一起学习。接下来的几篇文章,我们依次使用xpath
、bs4
和pyquery
库来进行实现,帮助大家巩固下Python选择器基础。
最后感谢粉丝【O|】提问,感谢【dcpeng】、【月神】、【甯同学】、【凡人不烦人】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
评论
合一云2024年五一劳动节放假安排通知
亲爱的用户: &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;“五一”劳动节即将到来,根据《国务院办公厅关于2024年部分节假日安排的通知》并结合网站的实际情况,现将合一云2024年“五一”劳动节放假安排通知如下: &amp;amp;nbsp; &amp;amp;nbsp; 一、放假时间:2024年5月1日(星期三)至2024年5月5日(
合一云
0
机械臂抓取/6D位姿估计/三维点云/缺陷检测方向交流群成立啦
点击下方卡片,关注「3D视觉工坊」公众号选择星标,干货第一时间送达添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如机械臂抓取+清华+小草莓)▲长按扫码添加助理大家好,我是小草莓!我们3D视觉工坊成立了计算机视觉各个方向的交流群,详细如下所示,欢迎添加小助理,邀请你加群!3D视觉
3D视觉工坊
0
纪不懂法,云浩止耕:要种地,先交钱
“我是建华镇党委副书记,我姓纪叫纪云浩,听懂了吗?等会车我们一定要扣走,地不属于你们的…”、“别找我,我不懂法“。。。“纪不懂法,云浩止耕”所说的就是最近非常火的内蒙古自治区通辽市开鲁县建华镇党委副书记、政法委员:纪云浩,而他还是一位90后,07年入伍,09年转业。。。春耕,农民的希望与挑战。又到一
机器学习算法工程师
0
Open-Sora全面开源升级:支持16s视频生成和720p分辨率
机器之心发布 机器之心编辑部Open-Sora 在开源社区悄悄更新了,现在单镜头支持长达16秒的视频生成,分辨率最高可达720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来试试效果。生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能
机器学习算法与Python实战
0
聊一聊我最关注的9个CV、SLAM、自动驾驶和AI圈子!
随着计算机视觉(2D/3D)、SLAM、自动驾驶、AI技术的快速迭代更新,可落地的技术也成为人们争先学习的重点。这使得从业者对于最前沿技术的获取能力变得至关重要。微信公众号便是一个非常有效的前沿信息分享平台。这里给大家推荐9个最常打开的计算机视觉、自动驾驶、SLAM、机器学习和AI方向的优质公众号平
3D视觉工坊
0
文本嵌入、文本分类和语义搜索
在实践中使用大型语言模型(LLM)中,RAG 的一个关键部分是使用文本嵌入从知识库中自动检索相关信息。在这里,我将更深入地讨论文本嵌入,并分享两个简单(但功能强大)的应用:文本分类和语义搜索。ChatGPT 吸引了全世界对人工智能及其潜力的想象。ChatGPT 的聊天界面是这一影响的关键因素,它使人
大邓和他的Python
0
一站式解决方案:基于 Arthas 实现服务发现和权限控制
来源:juejin.cn/post/7281849496983994383👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
互联网晚报 | 大麦网已退款凤凰传奇演唱会“柱子票”;钟薛高再成被执行人;iPhone 16或取消实体音量键和电源键
大麦网回应凤凰传奇演唱会买到“柱子票”:已退票退款据报道,凤凰传奇2024巡回演唱会常州站演出结束的第二天,有网友称自己在大麦网买到“柱子票”,因为观看效果不佳,要求退款被拒。23日,记者从涉事网友处了解到,大麦方面给出了退款建议,但被其拒绝,“我希望平台退款加赔偿,并重视屡次出现的‘柱子票’问题。
产品刘
0