python使用beautifulsoup4爬取酷狗音乐代码实例

 更新时间:2019年12月04日 17:02:31   作者:咸鱼日常分享  
这篇文章主要介绍了python使用beautifulsoup4爬取酷狗音乐代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了python使用beautifulsoup4爬取酷狗音乐代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

小编经常在网上听一些音乐但是有一些网站好多音乐都是付费下载的正好我会点爬虫技术,空闲时间写了一份,截止4月底没有问题的,会下载到当前目录,只要按照bs4库就好,

安装方法:pip install beautifulsoup4

完整代码如下:双击就能直接运行

from bs4 import BeautifulSoup
import requests
import re
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
}
url='https://songsearch.kugou.com/song_search_v2?&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1555124510574'
#想要爬取别的网页直接修改这个json数据地址就行
r=requests.get(url,headers=headers)
soup=BeautifulSoup(r.text,'lxml')
title_list=soup.select('.pc_temp_songlist ul li')
hash=re.findall(r',"FileHash":"(.*?)"',r.text)
hash1=re.findall(r',"FileName":"(.*?)"',r.text)
#直接用正则匹配隐藏的数据
print(hash)
print(hash1)
q=0
for url in hash:
url_a=f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery1910212680783679835_1555073815772&hash={url}&album_id=18784389'
#这个URL不用修改的
c=requests.get(url_a,headers=headers)
a=c.text[40:-3]
b=re.findall('"play_url":"(.*)","authors":',a)[0]
b1=re.sub(r"\\",'',b)
f = requests.get(b1)
with open(hash1[q]+'.mp3','wb')as d:
d.write(f.content)
print(hash1[q])
q+=1

爬取酷狗的唯一难点就是hash值的获取找了一个多小时才找到,比网易云好点就是自己不用写一个哈希值,酷狗是自己就存在的能找到,网易云是需要函数生成的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何将 awk 脚本移植到 Python

    如何将 awk 脚本移植到 Python

    脚本是解决问题的有效方法,而 awk 是编写脚本的出色语言。它特别擅长于简单的文本处理,它可以带你完成配置文件的某些复杂重写或目录中文件名的重新格式化。这篇文章主要介绍了如何把 awk 脚本移植到 Python,需要的朋友可以参考下
    2019-12-12
  • Python-jenkins 获取job构建信息方式

    Python-jenkins 获取job构建信息方式

    这篇文章主要介绍了Python-jenkins 获取job构建信息方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • wxPython实现画图板

    wxPython实现画图板

    这篇文章主要为大家详细介绍了wxPython实现画图板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Python中单、双下划线的区别总结

    Python中单、双下划线的区别总结

    这篇文章主要给大家介绍了关于Python中单、双下划线区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • python安装cx_Oracle模块常见问题与解决方法

    python安装cx_Oracle模块常见问题与解决方法

    这篇文章主要介绍了python安装cx_Oracle模块常见问题与解决方法,举例分析了Python在Windows平台与Linux平台安装cx_Oracle模块常见问题、解决方法及相关注意事项,需要的朋友可以参考下
    2017-02-02
  • Pycharm-community-2021版安装和配置

    Pycharm-community-2021版安装和配置

    pycharm-community-PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,本文就来介绍一下Pycharm-community-2021版安装和配置,感兴趣的可以了解一下
    2023-11-11
  • python实现棋盘覆盖问题及可视化

    python实现棋盘覆盖问题及可视化

    这篇文章主要给大家介绍了关于python实现棋盘覆盖问题及可视化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解pytest+Allure搭建方法以及生成报告常用操作

    详解pytest+Allure搭建方法以及生成报告常用操作

    本文主要介绍了详解pytest+Allure搭建方法以及生成报告常用操作,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)

    Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)

    conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换
    2018-04-04
  • python获取字符串中的email

    python获取字符串中的email

    这篇文章主要介绍了python获取字符串中的email,通过调用re库,通过使用compile、findall获取字符串中的email,下文详细实现过程需要的小伙伴可以参考一下
    2022-03-03

最新评论