首页 > 其他分享 >爬取歌曲-静态方法

爬取歌曲-静态方法

时间:2024-11-27 09:03:30浏览次数:6  
标签:静态方法 len replace 爬取 soup range html 歌曲 append

静态爬取网页主要是使用requests和BeautifulSoup,以下面网站为例:

歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载

然后具体的操作不做赘述,直接放完整代码,以做记录

#歌曲下载-静态网页爬取
import requests
from bs4 import BeautifulSoup
import re

def geturl(url):
    headers={"自己的headers"}
    r=requests.get(url,headers=headers)
    if r.status_code==200:
        return r.text
    else:
        print("网站响应代码为{}".format(r.status_code))

def getlist(html):#此函数目的在于获得查询结果
    count=[]
    list1=[]
    list2=[]
    list3=[]
    list4=[]
    soup=BeautifulSoup(html,"html.parser")
    count=soup.find_all("small",{"class":"float-right badge badge-pill badge-warning"})#获得所有结果的个数
    print(count[0].text.replace("\n","").replace(" ",""))
    list1=soup.find_all("div",{"class":"row"})#具体结果(歌名-歌手)在这个标签下面
    for i in list1:
        list2.append(i.text)
    for i in range(0,len(list2)):
        list3.append(list2[i].replace("\n","").replace(" ",""))
    del list3[0]
    for i in range(0,len(list3)):
        list4.append(list3[i].replace("播放&下载",""))
    for i in range(0,len(list4)):
        print(list4[i])#list4就是最终整理好的数据

def getlc(url,html):#此函数目的在于下载歌词
    ls1=[]
    ls2=[]
    ls3=[]
    ls4=[]
    ls5=[]#从这往上都是中转列表
    ls6=[]
    soup=BeautifulSoup(html,"html.parser")
    ls1=soup.find_all("div",{"class":"col-8 col-content"})#这个标签下的所有都获取下来
    for i in range(0,len(ls1)):
        ls2.append(ls1[i].find_all("a"))#此时ls2里面都是具体的a标签内容,每个元素都是以字符串方式存储
    for i in range(0,len(ls2)):
        ls3.append(re.findall('href="(.*?)" target',str(ls2[i])))#使用正则表达式匹配链接
    for i in range(0,len(ls3)):
        ls4.append(url+str(ls3[i]).replace("[","").replace("]","").replace("'",""))#这一步是整理成完整的链接
    for i in range(0,len(ls4)):#对链接进行循环爬取
        r=geturl(ls4[i])
        s=BeautifulSoup(r,"html.parser")
        ls5=s.find_all("div",{"id":"content-lrc"})#歌词在这个标签下面
        for j in range(0,len(ls5)):
            ls6.append(ls5[j].text)#对所有歌词进行放置在ls6列表里面
    print(ls6)#可以使用with-open格式对歌词进行保存,这里我选择单纯输出

def getsong(html):#这个网站歌曲有高低品质两种
    lst1=[]
    lst2=[]
    soup = BeautifulSoup(html,'html.parser')#下载高品质音质-这个网站会跳转到迅雷网盘,这里只是获取网盘链接;低品质的我暂时没想到怎么使用BeautiSoup来爬取,我觉得应该不行
    lst1=soup.find_all('script',type="text/javascript")
    lst2=re.findall("window.mp3_extra_url = '(.*?)'",lst1[0].text)
    print(lst2)#可以使用with-open格式对歌词进行保存,这里我选择单纯输出


def main():
    m = input("请输入歌手或歌曲名:")
    url1 = "https://www.gequbao.com/s/"
    url = url1 + m
    url2="https://www.gequbao.com"#在geturl里面ls4获取的链接应该是https://www.gequbao.com/music/*****格式
    s=geturl(url)
    getlist(s)
    getlc(url2,s)
    getsong(s)

main()

标签:静态方法,len,replace,爬取,soup,range,html,歌曲,append
From: https://blog.csdn.net/ldjdjdk/article/details/144020895

相关文章

  • 利用Python爬取12306网站车次信息
    整体思路:首先利用https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9053这个网站解析目前国内所有车站代码以及对应的城市名称利用Python对该url进行处理defget_respose(url):try:r=requests.get(url)r.r......
  • 爬虫优化策略利用并发编程加速爬取
    爬虫技术是数据获取的重要工具,而在实际操作中,单线程爬取的效率通常难以满足需求,尤其是在高延迟或需要处理大量请求的场景下。为了解决这一问题,可以借助并发编程的多种方法来提升爬取效率。通过线程池、多进程模型以及异步编程等技术,不仅能够加速网络请求,还能有效降低资源浪......
  • Playwright进行异步爬取案例
    1.代码功能概述该代码使用Playwright异步库编写,用于抓取一个目标网站的数据。主要任务包括:加载网页:访问指定页面并等待加载完成。解析网页内容:提取数据如标题、封面图片、分类、评分、简介等。存储数据:将抓取到的数据以特定格式保存到本地文件中。2.代码结构解析1.......
  • 如何快速下载Suno AI平台上的音乐歌曲?保存为MP3格式
            如果你在最近火出圈的SunoAI平台上听到比较喜欢的歌曲,并想要下载到自己的手机电脑上,遗憾的是,SunoAI平台本身并不直接提供下载歌曲MP3的方法。SunoAI怎么下载其他人的音乐到本地?SunoAI获取歌曲直链,充实你的mp3?SunoAI上的歌很好听,我想下载到手机上,怎么下......
  • 使用Python爬取免费代理并测试其有效性
    前言在本篇文章中,我们将使用Python编写一个脚本来爬取免费的代理IP地址,并对其进行有效性测试。我们将会用到playwright、aiohttp、pandas等库来完成这个任务。最终我们会得到一个包含有效代理IP地址的列表,并将其保存到本地文件中。1.环境准备首先,你需要确保你的Python环......
  • 基于django+vue+Vue歌曲发烧友网站【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今数字化时代,音乐已成为人们生活中不可或缺的一部分,它不仅能抒发情感,还能丰富我们的精神世界。随着互联网的迅猛发展,越来越多的人倾向......
  • 当前仍可用的爬取Youtube视频方法
    importyt_dlpimporthttp.cookiejarimporttimeimportloggingimportosimportrandom#Setuplogginglogging.basicConfig(level=logging.INFO,format='%(asctime)s-%(levelname)s-%(message)s')defload_cookies_from_netscape(cooki......
  • Python爬虫爬取快手视频代码
    importpprintimportrequestsimportosimportreimportjsondefget_response(url,keywords,pcursor):hearders={‘Accept’:‘/’,‘Accept-Encoding’:‘gzip,deflate,br’,‘Accept-Language’:‘zh-CN,zh;q=0.9’,‘Connection’:‘keep-alive’,......
  • 爬取股票全ATick数据
    爬取股票全ATick数据概述在金融市场分析中,Tick数据是非常重要的资源,它记录了股票在每一交易时间内的价格变动。对于量化交易者和分析师来说,获取并分析这些数据是至关重要的。本文将介绍如何使用Python爬取股票的Tick数据,并将其存储到本地。环境准备在开始之前,请确保你已......
  • static静态方法的使用
    //测试类,用来执行代码packagehomework;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){int[]a={4,5,3,6,8,1};//自己初始化数组int[]b=newint[10];//自行输入数组数字Scannerscanner=newScanner(System.in);inti=0;//输入......