廊坊网站建站网站,基于网站开发app,wordpress首页调用文章数,搭建网站的方法相信训练模型时数据集的获取也是一个很头疼的事情#xff0c;搞cv领域的可以扛着摄像头架起三脚架拍摄获取#xff08;以前干过#xff09;#xff0c;但是如果是nlp领域的呢#xff0c;特别是chatgpt等大模型出来后对这类文本等数据的需求更大#xff0c;如果没有现成的… 相信训练模型时数据集的获取也是一个很头疼的事情搞cv领域的可以扛着摄像头架起三脚架拍摄获取以前干过但是如果是nlp领域的呢特别是chatgpt等大模型出来后对这类文本等数据的需求更大如果没有现成的数据集的话基本上很难自己创造数据所以爬取视为其中一个手段获取数据但是提醒一下要合法获取数据哦。 那么下面就以简单的批量获取mp3文件为例。 假设我们要获取网易云飙升榜的所有音乐文件 地址为https://music.163.com/#/discover/toplist?id19723756 首先f12打开开发者工具 选择network然后根据歌曲名复制到搜索框然后点击清理按键清理所有的请求信息。 然后点击刷新页面可以看到出现了很多新的请求信息这里打开抓包再开始请求是因为刚才的请求信息可能是有延迟的请求信息并不全这里重新获取的比较全面。 在左边搜索框搜索出来的点击就可以看到定位到的位置在li标签的a标签里面接下来我们先查看请求信息get获取一下信息打印出来看看
选择headers要获取两个信息一个是url一个是request headers底下的user agent。复制这两个信息开始下面的代码
import requests
import re # 正则表达式的库url https://music.163.com/discover/toplist?id19723756
headers {user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
}
response requests.get(urlurl, headersheaders)
print(response.text)运行后打印出获取到的信息接下来开始从中提取想要的内容ctrl f定位到歌名可以看到是包裹在li标签中因为我们想要下载的是mp3格式的文件看到mp3的下载地址的组成包括id而id就是和歌名一一对应的所以我们for循环获取每个歌名及id来下载对应的mp3文件 我们先拿这个“双星”举例他的组成是这样的lia href/song?id2068206782双星/a/li所以我们可以用正则表达式来通用表示所有的歌名的标签组成lia href/song\?id(\d)(.*?)/a代码如下
html_data re.findall(lia href/song\?id(\d)(.*?)/a, response.text)
# print(html_data)
for num_id, title in html_data:music_url fhttp://music.163.com/song/media/outer/url?id{num_id}.mp3 # mp3文件地址music_content requests.get(urlmusic_url, headersheaders).contentwith open(/home/alpha/桌面/results/ title .mp3, modewb) as f: # 下载每个mp3文件f.write(music_content)print(num_id, title)运行结果 这样就爬取下当前页面下全部的mp3文件了。