当前位置: 首页 > wzjs >正文

建设银行企业版网站重庆网络营销

建设银行企业版网站,重庆网络营销,推荐的办公室装修设计,织梦个人网站模板​ 最近B站看了很多爬虫相关的视频,也想找个网站学习下批量爬取,于是搜了下免费歌曲,发现歌曲宝可以免费下载歌曲,于是尝试在上面进行批量爬取,下面记录批量爬取的实现过程。 获取歌曲列表 web分析相关请求 分析周下…


最近B站看了很多爬虫相关的视频,也想找个网站学习下批量爬取,于是搜了下免费歌曲,发现歌曲宝可以免费下载歌曲,于是尝试在上面进行批量爬取,下面记录批量爬取的实现过程。

获取歌曲列表

web分析相关请求

分析周下载榜的url,可以看到携带一个参数page,可以查看多页,歌曲的相对url路径是存储在html中,使用正则表达式进行相关的解析获取在这里插入图片描述
## 对相关请求进行编码

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',pattern = r'<a\s+href="([^"]+)">\s*(.*?)\s*</a>'
for i in range(totalPage):response = requests.get('https://www.gequbao.com/top/week-download', headers=headers, params={'page': f'{i}',})if response.status_code != 200:print(f'getSongs error: {response.text}')continuematches = re.findall(pattern, response.text)for match in matches:url, text = matchprint(f"URL: {url}")print(f"Text: {text}")time.sleep(1.03)
}

获取歌曲的下载url

分析web相关请求

使用歌曲的相对url进行拼接可以获取歌曲的play_id,然后通过play_id进行url请求可以获取有效的下载url在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完整的批量下载代码

import json
import os.path
import timeimport requests
import retotalPage = 13
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
}
saveDir = 'I:/songs/'# 获取周排行榜的歌曲
def getSongs():songs = {}pattern = r'<a\s+href="([^"]+)">\s*(.*?)\s*</a>'for i in range(totalPage):response = requests.get('https://www.gequbao.com/top/week-download', headers=headers, params={'page': f'{i}',})if response.status_code != 200:print(f'getSongs error: {response.text}')continuematches = re.findall(pattern, response.text)for match in matches:url, text = matchif os.path.isfile(f'{saveDir}{text}.mp3'):continueprint(f"URL: {url}")print(f"Text: {text}")songs[url] = texttime.sleep(1.03)return songs# 获取歌曲的播放url
def getSongsUrls(songs):songUrls = {}for key, value in songs.items():response = requests.get(f'https://www.gequbao.com{key}')pattern = r"window\.play_id\s*=\s*'([^']+)';"matches = re.search(pattern, response.text)response = requests.post('https://www.gequbao.com/api/play-url', data=json.dumps({'id': matches.group(1)}),headers={'Content-Type': 'application/json'})if response.status_code != 200:print(f'getSongsUrls error: {response.text}')continuetry:jsonObj = response.json()print(f'song: {value} play_url: {jsonObj['data']['url']}')songUrls[jsonObj['data']['url']] = valuetime.sleep(1.03)except Exception as e:print(f'getSongsUrls error song : {value} key: key')return songUrls# 下载歌曲
def downloadSongs(songs):for key, value in songs.items():with open(f'{saveDir}{value}.mp3', "wb") as file:response = requests.get(key)if response.status_code != 200:print(f'downloadSongs error: {response.text}')continuefile.write(response.content)downloadSongs(getSongsUrls(getSongs()))
# print(response.text)
http://www.dtcms.com/wzjs/500762.html

相关文章:

  • iis 会影响 网站 速度品牌运营公司
  • 做个网站费用拓客软件哪个好用
  • wordpress主题adavaseo流程
  • 建立石墨碳素网站怎么做天津关键词优化网站
  • wordpress 网站静态页面网站推广策划思路的内容
  • 广州有什么互联网公司优化大师电脑版
  • 苏州网站制作排名优化网站设计培训
  • 企业网站备案多少钱seo外包多少钱
  • wordpress页面归档系统清理优化工具
  • 网站建设平台推荐企业培训体系搭建
  • 胶州网站建设平台网站优化和网站推广
  • 百度云bch 建设网站网页设计框架图
  • 网站开发的母的目的和意义.百度网络推广
  • web全栈开发优化推广网站淄博
  • 福州建设公司名单优化排名推广教程网站
  • 使用WordPress快速建站视频金戈西地那非片
  • b2b网站建设需要多少费用上海网络推广平台
  • 网站建设艾金手指六六12兰州做网站的公司
  • 网站建设研究的意义百度收录提交入口
  • 专业营销型网站建设费用微信推广平台怎么做
  • 电子商务网站建设新闻百度导航下载安装手机导航
  • 百度网站内容交换友情链接的注意事项
  • 茂名住房和城乡建设部网站seo服务顾问
  • 医疗器械分为哪三类惠州百度seo排名
  • 重庆智慧团建网站登录平台招聘网络营销推广人员
  • 网站首页的logo这么修改如何提高网站排名的方法
  • 网站建设合同的要素及签订注意事项浙江seo
  • 有一个网站自己做链接获取朋友位置网络广告策划方案
  • 公司网站建设计划书seo关键词怎么优化
  • 有哪些做网站好的公司竞价外包运营