参照上一篇爬虫小猪短租的思路https://www.cnblogs.com/aby321/p/9946831.html,继续熟悉基础爬虫方法,本次爬取的是咪咕音乐的排名

咪咕音乐榜首页http://music.migu.cn/v2/music/billboard/?_from=migu&page=1

注意:本程序有时候运行会报错,此时重新运行即可,报错原因不明了!

与小猪短租不同的是,爬取的排名信息不在每首歌曲的详细页面内,需要在分页url中获取(代码19-25行),使用打包循环并且输出给函数get_info()

1 """

2 典型的分页型网站——咪咕音乐榜3 有时候运行会报错,有时候正常,原因不知道4 """

5 importrequests6 from bs4 importBeautifulSoup as bs7 importtime8

9 headers ={10 'User-Agent':'User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

11 }12

13 #获取每一个歌曲的网址,参数是分页url

14 defget_link(url):15 html_data = requests.get(url, headers =headers)16 soup = bs(html_data.text, 'lxml')#bs4推荐使用的的解析库

17 #print(soup.prettify()) #标准化输出url中的源代码(有可能跟网页查看中的不一致,网页中有可能标签书写不规范)以此为基础抓取,如果抓取失败,用此命令查看源代码

18 links = soup.select('#js_songlist > div > div.song-name > span > a')#注意循环点!!!

19 ranks = soup.select('#js_songlist > div > div.song-number')#因为歌曲详情里没有排名信息,因此需要在这部分获取详情信息

20 #print(ranks)

21 for rank, link in zip(ranks,links):#打包循环,主要为了输出配套的rank和link

22 rank =rank.get_text()23 link = 'http://music.migu.cn' + link.get('href')#观察每个歌曲的详细网页发现,前面部分需要手动添加http://music.migu.cn

24 #print(rank,link)

25 get_info(rank,link)26

27 #获取每一个歌曲的详细信息,排名、歌名、歌手和专辑名,参数url是每个歌曲的网址

28 defget_info(rank,url):29 html_data = requests.get(url, headers =headers)30 soup = bs(html_data.text, 'lxml')#bs4推荐使用的的解析库

31 #print(soup.prettify()) #标准化输出url中的源代码(有可能跟网页查看中的不一致,网页中有可能标签书写不规范)以此为基础抓取,如果抓取失败,用此命令查看源代码

32 title = soup.select('div.container.pt50 > div.song-data > div.data-cont > div.song-name > span.song-name-text')[0].string.strip()33

34 #用网页copy过来的全部是“body > div.wrap.clearfix.con_bg > div.con_l > div.pho_info > h4 > em”,但是使用这个爬不出来数据(我也不知道why),把body去掉或者用下面最简短的方式(只使用最近的且唯一的div)

35 #title = soup.select('div.pho_info > h4 > em ')

36 #查询结果title格式是一维列表,需要继续提取列表元素(一般就是[0]),列表元素是前后有标签需要继续提取标签内容,使用get_text()或者string

37 singer = soup.select('div.container.pt50 > div.song-data > div.data-cont > div.song-statistic > span > a')[0].string.strip()38 cd = soup.select('div.container.pt50 > div.song-data > div.data-cont > div.style-like > div > span > a')[0].string.strip() #获取标签的属性值

39

40 #将详细数据整理成字典格式

41 data ={42 '排名':rank,43 '歌名':title,44 '歌手':singer,45 '专辑':cd46 }47 print(data)48

49

50 #程序主入口

51 if __name__=='__main__':52 for number in range(1,3):53 url = 'http://music.migu.cn/v2/music/billboard/?_from=migu&page={}'.format(number) #构造分页url(不是歌曲详情的url)

54 get_link(url)55 time.sleep(1)

输出结果:每次输出data数据(字典型)字段顺序是随机的,因为本身字典型数据就没有顺序,如果想固定顺序的话请使用列表

举一反三:同类型的分页型网站均可使用此爬虫模板,例如豆瓣电影top100、时光网top榜之类的

ps:不知道这个榜单准不准,反正我基本没听过(可能是我out了)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

咪咕音乐HTML代码,python3爬取咪咕音乐榜信息(附源代码)相关推荐

  1. Python2 Python3 爬取赶集网租房信息,带源码分析

    *之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是 ...

  2. python爬虫爬取音乐单曲_Python爬取qq音乐的过程实例

    一.前言 qq music上的音乐还是不少的,有些时候想要下载好听的音乐,但有每次在网页下载都是烦人的登录什么的.于是,来了个qqmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元 ...

  3. python爬取音乐并保存_python爬取QQ音乐歌单歌曲保存到本地,json解析

    序:python强大的功能,可以爬取网上的某些信息,本次主要是通过爬歌单信息熟悉下python基础. 用到知识点: 1.python3.urllib.request.openurl 2.json (j ...

  4. python3爬取咪咕音乐榜信息(附源代码)

    参照上一篇爬虫小猪短租的思路https://www.cnblogs.com/aby321/p/9946831.html,继续熟悉基础爬虫方法,本次爬取的是咪咕音乐的排名 咪咕音乐榜首页http://m ...

  5. python爬虫qq音乐教学视频_爬取QQ音乐(讲解爬虫思路)

    一.问题描述: 本次爬取的对象是QQmusic,为自己后面做django音乐网站的开发获取一些资源. 二.问题分析: 由于QQmusic和网易音乐的方式差不多,都是讲歌曲信息放入到播放界面播放,在其他 ...

  6. python爬取音乐源码_python3爬取咪咕音乐榜信息(附源代码)

    1 """ 2 典型的分页型网站--咪咕音乐榜3 有时候运行会报错,有时候正常,原因不知道4 """ 5 importrequests6 f ...

  7. python3 爬取猫眼电影Top100信息(正则+requests)

    import json from multiprocessing.dummy import Pool import requests import redef get_one_page(url):# ...

  8. 几行代码爬取喜马拉雅音乐

    爬取喜马拉雅音乐 工具:python3,pycharm,火狐浏览器 模块:requests,time,json 网址:https://www.ximalaya.com/yinyue/3595841/ ...

  9. Python3运用requests包爬取QQ音乐指定歌手歌曲

    Python3应用requests包开发定向爬虫 最近学院给我们开设了Python+爬虫课程,请来了外面的公司的老师来给我们进行了为期10天的爬虫课程,实训的日子最近结束,我也有时间把我们平常写的拿来 ...

  10. 写一段python爬取付费音乐的代码

    这里是一段爬取付费音乐的 Python 代码: import requests import json# 请求头 headers = {"User-Agent": "Mo ...

最新文章

  1. “32 位应用已死!”
  2. 堆和栈的区别 (转贴)
  3. uva 558 Wormholes
  4. 到底什么是面向对象,面试中怎么回答。面向过程和面向对象的区别是什么。java跨平台特性以及java和C++的区别。面向对象的三大特性——封装、继承和多态。面向对象的高拓展性以及低耦合度怎么体现?
  5. linux禁用页面拷贝粘贴,【Linux基础】VI命令模式下删除拷贝与粘贴
  6. 基于Xml 的IOC 容器-向容器注册
  7. Spring Enable*高级应用及原理
  8. Oracle 10g数据仓库实践pdf
  9. 关于芯片或者功率模块热相关计算
  10. 使用Smart3D进行倾斜摄影实景建模详细教程
  11. 如何从零开始学习Java语言
  12. excel文件压缩 定位条件 对象
  13. Frp配置——stcp及p2p模式
  14. 使用python爬取新浪微博的内容
  15. 说一说Glide.with()
  16. python用pandas读取excel_Python使用pandas处理Excel
  17. 2020年中国热成像品牌崛起,高德红外跃居全球第二
  18. 互联网企业数据应用BI建设全流程解读!
  19. Linux自动巡检脚本
  20. 认识消防报警联网中CAN光纤转换器的光纤接口和配套光纤线缆

热门文章

  1. 文本去重:sim哈希算法
  2. python-常见的语法错误
  3. 制作影像(dmg)文件详细步骤
  4. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十四:SD卡模块
  5. VMware卸载干净
  6. stc单片机id加密c语言,STC单片机使用加密芯片SMEC98SP的加密实例源码
  7. verilog幂次方_verilog语法实例学习(3)
  8. Java-String类常用方法汇总
  9. 2021年dedecms伪原创插件,织梦AI文章伪原创插件使用方法
  10. (minio学习过程2)纠错码