爬虫学习(爬取音乐)

import re
import requestsurl= "http://www.yy8844.cn/ting/numes/sussoc.shtml"
response = requests.get(url)
response.encoding = "gbk"
# print(r.text)
#第一步,访问网页获取MusicID
p = re.compile(r"MusicId=(.*?);",re.S)
print(re.search(p,response.text).group())

运行得到如下,获取到MusicId

import re
import requests
import execjs
url= "http://www.yy8844.cn/ting/numes/sussoc.shtml"
response = requests.get(url)
response.encoding = "gbk"
# print(r.text)
#第一步,访问网页获取MusicID
p = re.compile(r"MusicId=(.*?);",re.S)
music_id = re.search(p,response.text).group(1)
#第二步 nodejs生成mp3 url
with open('m.js',encoding='utf-8') as f:ctx = execjs.compile(f.read())t = ctx.call("info", music_id)print(t)
#第三步 访问mp3 url,下载MP3并保存
function info(MusicId){var surl = "http://96.ierge.cn/";nurl = parseInt(MusicId / 30000) + "/" + parseInt(MusicId / 2000) + "/" + MusicId + ".mp3";fin_url = surl + nurlreturn fin_url
}

import re
import execjs
import requests
from bs4 import BeautifulSoup as bsdef download_mp3(url,name):response = requests.get("http://www.yy8844.cn/"+url)response.encoding = "gbk"# print(r.text)# 第一步,访问网页获取MusicIDp = re.compile(r"MusicId=(.*?);", re.S)music_id = re.search(p, response.text).group(1)# 第二步 nodejs生成mp3 urlwith open('m.js', encoding='utf-8') as f:ctx = execjs.compile(f.read())url = ctx.call("info", music_id)# 第三步 访问mp3 url,下载MP3并保存mp3_content = requests.get(url)with open(name+".mp3", "wb") as w:w.write(mp3_content.content)  # 获取文件(文件是二进制格式)并写入文件里def get_index():url = "http://www.yy8844.cn/"headers = {"User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0"}r = requests.get(url, headers=headers)r.encoding = "gbk"fin_result = re.findall(r'<a href="(.*?)" target=\'musiclisten\'>(.*?)</a>', r.text)for i in fin_result:download_mp3(i[0],i[1])print("正在下载{}".format(i[1]))print("下载完成")if __name__ == '__main__':get_index()# soup = bs(r.text,'html.parser')
# print(soup.find_all(Class='link2'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/579038.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HAProxy + Vitess负载均衡

一、环境搭建 Vitess环境搭建&#xff1a; 具体vitess安装不再赘述&#xff0c;主要是需要启动3个vtgate&#xff08;官方推荐vtgate和vtablet数量一致&#xff09; 操作&#xff1a; 在vitess/examples/common/scripts目录中&#xff0c;修改vtgate-up.sh文件&#xff0c;…

unity内存优化Texture2D优化

作为unity开发者&#xff0c;我们使用memory Profiler来查看内存&#xff0c;本期我们项目中Texture2D的内存占有比较高&#xff0c;为了对这块做优化我们先看下内存的占有情况。 step1 使用memory Profiler对手机应用程序截图 打开截取后的内存页面&#xff0c;选择顶部Unit…

Linux(CentOS7)安装 MongoDB

目录 下载 上传 解压 创建mongodb.conf 创建数据文件夹和日志文件夹 启动服务 创建软链接 安装客户端 下载 上传 安装 下载 官方地址&#xff1a; Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/download/community 上传 将下载好的 …

30.Python从入门到精通—Python3 命名空间和作用域 命名空间 作用域

30.从入门到精通&#xff1a;Python3 命名空间和作用域 命名空间 作用域 Python3 标准库概览 操作系统接口 文件通配符 命令行参数 错误输出重定向和程序终止 字符串正则匹配 访问 互联网 日期和 个人简介Python3 命名空间和作用域命名空间作用域 Python3 标准库概览操作系统接…

接口自动化框架搭建(九):接入钉钉消息通知

1&#xff0c;jenkins安装钉钉插件 2&#xff0c;在钉钉群聊设置机器人 3&#xff0c;jenkins配置钉钉 根据情况选择&#xff1a; 除了这些&#xff0c;其他不用配置&#xff0c;配置完成点击确认 4&#xff0c;项目配置 添加后保存 5&#xff0c;测试下效果 构建完成后&a…

常见手撕项目C++

常见手撕项目C 设计模式单例模式饿汉模式懒汉模式 策略模式策略接口实现具体的策略&#xff08;虚函数重写&#xff09;定义上下文用户调用 代码使用函数模板写冒泡排序写一个类模板 设计模式 单例模式 单例模式是一种常用的软件设计模式&#xff0c;其目的是确保一个类只有一…

2024 批量下载雪球文章导出pdf,以市场高标解读这个号为例

之前分享过我开发的雪球文章批量下载工具 2023 年苏生不惑开发的第 1 个工具 &#xff0c;最近又更新了下&#xff0c;今天以市场高标解读这个号为例。 首先登陆雪球账号&#xff0c;获取工具后打开工具输入雪球主页地址和浏览器cookie &#xff0c;如何获取cookie见教程 总有人…

Gitea 的详细介绍

什么是 Gitea&#xff1f; Gitea 是一个开源、轻量级的自托管 Git 服务&#xff0c;它允许用户搭建类似于 GitHub 或 GitLab 的代码托管平台。由于采用 Go 语言开发&#xff0c;Gitea 具有高效的性能和跨平台特性&#xff0c;适合个人开发者或小团队使用。 Gitea 的特点 轻量…

机器学习实验作业一----knn算法

机器学习课程的第一个算法knn算法&#xff0c;全称K-Nearest Neighbor&#xff0c;k最邻近算法&#xff0c;为机器学习中最常用&#xff0c;也是最简单的算法。KNN通过测量不同特征值之间的距离来进行分类。本文实现的是较为简单的knn算法&#xff0c;包括测试集&#xff0c;训…

【c++】类和对象(五)赋值运算符重载

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章带大家认识赋值运算符重载&#xff0c;const成员&#xff0c;取地址及const取地址操作符重载等内容 目录 1.赋值运算符重载1.1运算符重载1.1.1特性&#…

C语言循环结构的程序设计

在C语言中&#xff0c;循环结构是一种重要的控制结构&#xff0c;用于重复执行特定的代码块&#xff0c;直到满足特定的条件为止。循环结构使得程序可以更加灵活和高效地处理重复性的任务&#xff0c;从而提高了程序的可读性和可维护性。本文将深入介绍C语言中循环结构的程序设…

空间数据结构(四叉树,八叉树,BVH树,BSP树,K-d树)

下文参考&#xff1a;https://www.cnblogs.com/KillerAery/p/10878367.html 游戏编程知识课程 - 四分树(quadtree)_哔哩哔哩_bilibili 利用空间数据结构可以加速计算&#xff0c;是重要的优化思想。空间数据结构常用于场景管理&#xff0c;渲染&#xff0c;物理&#xff0c;…