基操爬取网易云歌曲榜单中网易云歌曲及其对应id

回顾xpath csv re requests

先进行基础抓包!
1

2

3

然后就是代码啦,兄弟们,我的代码都很完整,看懂思路,直接收藏复制粘贴就可以运行

import requests
from lxml import etree
import re
import csv
#原网页的url为 https://music.163.com/#/discover/toplist
url="https://music.163.com/discover/toplist"#数据所在的url
headers={"User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7"}
response=requests.get(url=url,headers=headers)
print(response.status_code)
text="获取错误"
if response.status_code==200:#状态码获取从而判断text=requests.get(url=url,headers=headers).content.decode()
print(text)
html=etree.HTML(text)#xpath进行解析
musicTitle=html.xpath("//title/text()")#定位开头
# introduction=html.xpath("//meta[@property='og:description']/@content")如果是用户自建的歌单 介绍所在的位置,但我们现在爬取的是官方榜单没有介绍
musicList=html.xpath("//div[@id='song-list-pre-cache']/ul[@class='f-hide'][1]")[0]#第一步定位到歌单歌曲位置
oneMusicNameList = musicList.xpath("//li/a/text()")#歌单歌曲名称,但后面有很多无用信息
oneMusicUrlList=musicList.xpath("//li/a/@href")#歌单歌曲地址,但后面有很多无用信息
for i in range(len(oneMusicUrlList)):#对数据进行清洗,获取前面的歌曲信息,那些微信,微博这些没用信息就不要了if re.search("/song\?id=.+",oneMusicUrlList[i])==None:#进行判断re.search没查到就返回Noneprint(i)break
oneMusicNameList=oneMusicNameList[:i]
oneMusicUrlList=oneMusicUrlList[:i]
oneMusicIdList=list(map(lambda x:re.search("id=(\d+)",x).group(0),oneMusicUrlList))#获取其中id
musicList=[]#为csv字典存储创建列表
for i in range(len(oneMusicNameList)):musicDict={}musicDict["歌曲名"]=oneMusicNameList[i]musicDict["歌曲id"]=oneMusicIdList[i]musicDict['歌曲url地址']="https://music.163.com/#"+oneMusicUrlList[i]musicList.append(musicDict)
# print(oneMusicIdList)
# print(oneMusicNameList)
# print(oneMusicUrlList)
# print(musicTitle)
# print(introduction)
print(musicList)
with open(f"{musicTitle[0]}.csv","w+",encoding="utf-8",newline="") as f:#因为有日文韩文歌所以不能用gbkwriter=csv.DictWriter(f,fieldnames=("歌曲名","歌曲id","歌曲url地址"),delimiter="|")# csv.writer(deli)writer.writeheader()writer.writerows(musicList)

新春快乐,以后我爬一个,你们学一个,hhhhh,重点是思路
新的一年大家加油,一起努力
原创不易,给个点赞如果有点收获,谢谢啦

爬取网易云歌曲榜单中网易云歌曲及其对应id xpath csv re requests python相关推荐

  1. 使用scrapy再次爬取猫眼前100榜单电影!

    前提: 记得去年5月份左右的时候写过一篇使用Requests方法来爬取猫眼榜单电影的文章,今天偶然翻到了这篇文章,又恰巧最近在学scrapy框架进行爬虫,于是决定饶有兴趣的使用scrapy框架再次进行 ...

  2. 爬取猫眼电影TOP100榜单

    爬取猫眼电影Top100榜单 分析网页 内容提取 前提:会基础的python3以及requests库,正则等. 分析网页 top100榜单网址为https://maoyan.com/board/4,通 ...

  3. Python爬虫实战Pro | (1) 爬取猫眼电影Top100榜单

    在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的序号,片名,主演,上映日期,评分和封面等内容. 之前在Python爬虫实战(1)中我们曾爬取 ...

  4. 摆脱剧荒!教你用 Python 一步步爬取豆瓣电影新榜单

    本文以豆瓣电影(非TOP250)为例,从数据爬取.清洗与分析三个维度入手,详解和还原数据爬取到分析的全链路. 作者 | 周志鹏 责编 | 郭   芮 旁友,暑假,已经过了一大半了. 这个遥远而炙热的名 ...

  5. python正则爬取微信阅读总榜单写入csv

    # 爬取微信阅读top总榜 import requests import re import csv url = "https://weread.qq.com/web/category/al ...

  6. python爬取千千音乐榜单_Python爬取QQ音乐榜单数据

    原博文 2020-08-09 12:56 − 1.爬取QQ音乐榜单数据并存入数据库(MySQL) 2.代码 import requests import json from bs4 import Be ...

  7. python利用charles爬虫爬取下载qq音乐歌单里的歌曲——多进程

    因为这是我第一个独立实践的爬虫项目,所以这次把思路都放上来了 特别注意,用的是charles,可以拦截查看url 知识点: ·······利用charles分析网页,抓包,得出对应URL ······ ...

  8. 爬取艺恩数据榜单年度票房电影

    import requests import jsonwhile True:print("选择翻译成的年份:")print("输入:q 退出")year = i ...

  9. Python3---站在大佬肩膀写爬虫-爬取网易云音乐热歌榜歌曲热评(精彩评论)

    和我一起加入CSDN----程序猿和攻城狮的社区 网易云音乐是我比较喜欢的一个音乐平台,对于特别热爱听歌的人来说,网易云音乐精准的音乐定位和独特歌曲推荐,让人使用起来很舒服.所谓:自古评论出人才,精彩 ...

最新文章

  1. react更改路由入参_react怎么路由传参?
  2. 微型计算机与接口技术考试题,微机原理与接口技术试题库2
  3. foreach之引用的使用
  4. 比尔盖茨:希望我们的家庭能够获得空间和隐私
  5. Slickflow.NET核心开源工作流引擎
  6. 丽水数据可视化设计价格_B端产品设计数据可视化图表选择篇
  7. 有关android工程的构建脚本(build.xml)的学习
  8. 3 ~ express ~ 静态文件托管
  9. 数字图像处理(三) 图像的变换
  10. 在java创建线程结果_Java创建线程的三种方式
  11. 06-Docker数据管理实践
  12. Html中跳转到其他页面
  13. linux格式化硬盘怎么那么慢,linux系统中怎么格式化硬盘
  14. windows7台式计算机网线连接,win7如何用一根网线连接两台电脑_一根网线怎样连接两台Win7电脑传输文件...
  15. Java数据结构项目
  16. 第二章 zio 入门
  17. mysql全文索引与停止词
  18. tensorrt部署YOLOv5模型记录【附代码,支持视频检测】
  19. 深入理解23种设计模式(14) -- 访问者模式
  20. linux无损扩空间,linux无损扩容的方法

热门文章

  1. 软件测试_笔记大全(完整版)
  2. Latex学习笔记(二)各标题的大小设置
  3. java Compiler API (java编译api)
  4. 关于联想“管理三要素”的思考
  5. TransGAN代码复现—九天毕昇平台
  6. ZYNQ平台学习--(3)u-boot编译
  7. centos6.5 升级openssl1.1.1g、openssh8.6p1小记
  8. 计算机主机电源线,电脑主机电源线是多少安和伏特
  9. 京东云专业安全服务介绍 | 京东云技术团队
  10. 简单的单例模式其实不简单