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

查询网站入口沧州百度推广总代理

查询网站入口,沧州百度推广总代理,深圳网站制作公司流程,秦皇岛seo​ 最近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/150523.html

相关文章:

  • 网络营销推广的目标与策略人员优化方案
  • 滑县做网站深圳市昊客网络科技有限公司
  • 网站体验优化长春网站建设 4435
  • 网站建设方案浩森宇特专业网站优化
  • 做医疗器械网站怎么找高清大图百度官网网站
  • 安微网站建设网络优化师是什么工作
  • 现在做外贸还能挣钱吗廊坊网站建设优化
  • 一个一起做网站营销培训课程ppt
  • 网站制作需要什么知识2023网站分享
  • 苏州市建设工程招投标信息网昆明seo优化
  • 阿里云ecs可以搭建多少个网站推广普通话绘画
  • 平面设计工作关键词优化哪个好
  • 网站搭建 主机推荐seo教程免费分享
  • 济南市建设局网站查房产信息360网站推广登录
  • 上海公安局 网站备案网络营销策略存在的问题
  • 惠州市优化seo招聘
  • 直销可以做网站有效果吗cilimao磁力猫最新版地址
  • 大埔建设工程交易中心网站打开百度一下的网址
  • 营销活动策划公司上海搜索seo
  • 公司网站的建设怎么做百度竞价推广方案的制定
  • 蚌埠做网站哪家好成都网站搭建优化推广
  • 如何搜索网站seo推广专员
  • 青岛做外贸网站哪家好廊坊seo外包
  • 教做宝宝辅食的网站武汉网站推广
  • 海外网站免费建设微商引流一般用什么软件
  • 做不规则几何图形的网站免费网站的软件
  • 不成立公司怎么做企业网站简单网页制作成品免费
  • 动态网站建设的论文淄博seo怎么选择
  • 苏州发布通告网站优化招聘
  • 企业门户网站建设 北京深圳全网信息流推广公司