网易云音乐热门作品名字和链接抓取(正则表达式篇)
回复“资源”即可获赠Python学习资料
今
日
鸡
汤
问姓惊初见,称名忆旧容。大家好,我是皮皮。
一、前言前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
二、实现过程究其原因是返回的响应里边并不是规整的html格式,所以直接使用xpath是拿不到的。这里【Python进阶者】给了一个使用正则表达式的方法来实现的代码,代码如下。
#coding:utf-8#@Time:2022/5/923:46#@Author:皮皮#@公众号:Python共享之家#@website:http://pdcfighting.com/#@File:网易云音乐热门作品名字和链接(正则表达式).py#@Software:PyCharm##_ooOoo_#o8888888o#88"."88#(|-_-|)#O\=/O#____/`---"\____#."\\||//`.#/\\|||:|||//\#/_|||||-:-|||||-\#||\\\-///||#|\_|""\---/""||#\.-\__`-`___/-./#___`.."/--.--\`..__#."""<`.___\_<|>_/___.">""".#||:`-\`.;`\_/`;.`/-`:||#\\`-.\___\/___/.-`//#======`-.____`-.___\_____/___.-`____.-"======#`=---="#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#☀佛祖保佑☀卍☀永无BUG☀importrequestsfromlxmlimportetreefromfake_useragentimportUserAgentimportreclassWangyiyun(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"}defget_xpath(self,url):res=requests.get(url,headers=self.headers)#print(res.text)#returnetree.HTML(res.text)html=res.text.replace("<适合才重要>","适合才重要")returnhtmldefsingers_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))#fortrintrs:#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"
这个代码亲测好使,运行之后结果如下。
三、总结大家好,我是皮皮。网易云音乐热门作品名字和链接抓取(正则表达式篇),行之有效,难点在于那个正则表达式的构造。也欢迎大家积极尝试,一起学习。接下来的几篇文章,我们依次使用xpath、bs4和pyquery库来进行实现,帮助大家巩固下Python选择器基础。
最后感谢粉丝【O|】提问,感谢【dcpeng】、【月神】、【甯同学】、【凡人不烦人】等人参与学习交流。
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
-------------------End-------------------
往期精彩文章推荐:
Pandas处理csv表格的时候如何忽略某一列内容?
盘点一个正则表达式题目(惊艳写法)
分享一个使用Python网络爬虫抓取百度关键词和链接的代码(xpath篇)
分享一个使用Python网络爬虫抓取百度关键词和链接的代码(bs4篇)
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...