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)

python爬取音乐源码_python3爬取咪咕音乐榜信息(附源代码)相关推荐

  1. python爬虫代码实例源码_python爬虫及案例详解(附代码)

    安装三大库 1.requests 2.BeautifulSoup 3.lxml 有的网站做了相应的反爬虫,不能用普通方法爬取网站数据. 这里我用python爬取了几个网站的数据,分别存入csv文件,m ...

  2. 近期爬虫学习体会以及爬豆瓣Top250源码实战

    近期爬虫学习体会以及爬豆瓣Top250源码实战 我是在B站https://www.bilibili.com/video/BV12E411A7ZQ?p=25里学习的,至今已经可以手写爬豆瓣Top250代 ...

  3. 抓取网络源码python_使用Python进行网络抓取的新手指南

    抓取网络源码python 有很多很棒的书可以帮助您学习Python,但是谁真正读了这些A到Z? (剧透:不是我). 接下来是我的第一个Python抓取项目指南. 假定的Python和HTML知识很少. ...

  4. Python实现天气查询源码

    Python天气查询源码 本文爬去的是通过 Python3 中国天气网数据,包含查询城市十五天的天气情况及今明两天的生活指数 本文实现查询有两个.py文件(city.py  weather.py) 注 ...

  5. Python实现天气查询源码_复制可执行,可用

    Python天气查询源码 本文爬去的是通过 Python3 中国天气网数据,包含查询城市十五天的天气情况及今明两天的生活指数 本文实现查询有两个.py文件(city.py  weather.py) 注 ...

  6. 抓取网络源码python_python中的复仇者网络抓取实体提取和网络图

    抓取网络源码python 2020 sent more bad news as Black Panther star Chadwick Boseman passed away aged 43. The ...

  7. python浪漫代码-python七夕浪漫表白源码

    本文实例为大家分享了python七夕浪漫表白的具体代码,供大家参考,具体内容如下 from turtle import * from time import sleep def go_to(x, y) ...

  8. “要源码上门自取”,结果人真上门了!国内企业再惹争议

    文 | Travis 出品 | OSC开源社区(ID:oschina2013) 国内智能设备制造商 UMIDIGI 因违反 GPLv2 协议引发争议,并告知开发者"想要源码上门自取" ...

  9. 照片背景底色更换工具二(python+flask网页版源码及打包)

    照片背景底色更换工具二(python+flask网页版源码及打包) 所有源码 文件结构 static images huaman_src_test.jpg huaman_result_test.png ...

最新文章

  1. laravel5.4 关于数据填充的知识
  2. git clone的时候报error: RPC failed; result=18错误
  3. 马云:我不懂技术但欣赏技术 达摩院必须超越微软 - 20171011
  4. 提升你的职场竞争力——“低代码开发师”来了!
  5. 小波阈值去噪法基础理论
  6. o型圈沟槽设计软件_265 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?...
  7. WPF 获取程序路径的一些方法,根据程序路径获取程序集信息
  8. ValueError: threshold must be numeric and non-NAN, try sys.maxsize for untruncated representation
  9. vivo手机点击android,了解Vivo手机几个小技巧,让您的手机变得更好用
  10. 惠普电脑如何安装双系统
  11. keepalived 中关于 weight 和 preempt_delay 的实验
  12. 蜗店SaaS系统功能介绍
  13. java 通过string对堆栈详解
  14. mongodb数据迁移设置方法
  15. Spring AOP思想的理解和简单实现
  16. 有传言任天堂可能会很快推出N64 Classic Mini
  17. 使用Python获取bing壁纸接口
  18. 一篇博文带你0基础 Html和css入门
  19. 数据分析挖掘实验报告及算法源码
  20. 【BZOJ4455】【UOJ185】【ZJOI2016】小星星(树形DP,容斥原理)

热门文章

  1. 永恒之蓝漏洞复现(ms17-010)
  2. Client引入Eureka报Completed shut down of DiscoveryClient问题原因及解决方式
  3. springboot 集成redis key乱码\xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD
  4. 计算机硬件英语单词 m.jb51.net,计算机硬件英汉对照表
  5. 如何正确的理解“光速不变”
  6. java 多态应用 编写 LOL商店英雄购买
  7. 某个偏锥面跟平面的交线
  8. 数据泄露事件频发,病毒入侵猖獗,装上MCK就能杜绝
  9. 使用SecureFX内容显示中文乱码问题
  10. 【树结构】Trie字典树