千家信息网

python爬虫如何爬取抖音热门音乐

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要为大家展示了"python爬虫如何爬取抖音热门音乐",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python爬虫如何爬取抖音热门音乐"这篇文章
千家信息网最后更新 2024年11月11日python爬虫如何爬取抖音热门音乐

这篇文章主要为大家展示了"python爬虫如何爬取抖音热门音乐",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python爬虫如何爬取抖音热门音乐"这篇文章吧。

爬取抖音的热门音乐

这个就相对来说简单一点,这是代码运行的结果

获取音乐的网址https://kuaiyinshi.com/hot/music/?source=dou-yin&page=1

打开该网页F12,F5刷新

做义工只需要以上的数据

根据beautifulsoup去获取,直接上代码

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
# 保存路径
save_path = "G:\\Music\\douyin\\"
url = "https://kuaiyinshi.com/hot/music/?source=dou-yin&page=1"
# 获取响应
res = requests.get(url, headers=headers)
# 使用beautifulsoup解析
soup = BeautifulSoup(res.text, 'lxml')
# 选择标签获取最大页数
max_page = soup.select('li.page-item > a')[-2].text
# 循环请求
for page in range(int(max_page)):
page_url = "https://kuaiyinshi.com/hot/music/?source=dou-yin&page={}".format(page + 1)
page_res = requests.get(page_url, headers=headers)
soup = BeautifulSoup(page_res.text, 'lxml')
lis = soup.select('li.rankbox-item')
singers = soup.select('div.meta')
music_names = soup.select('h3.tit > a')
for i in range(len(lis)):
music_url = "http:" + lis[i].get('data-audio')
print("歌名:" + music_names[i].text, singers[i].text, "链接:" + music_url)
try:
download_file(music_url,
save_path + music_names[i].text + ' - ' + singers[i].text.replace('/', ' ') + ".mp3")
except:
pass
print("第{}页完成~~~".format(page + 1))
time.sleep(1)

将获取到的文件的url传递到下载函数中


def download_file(src, file_path):

# 响应体工作流
r = requests.get(src, stream=True)
# 打开文件
f = open(file_path, "wb")
# for chunk in r.iter_content(chunk_size=512):
# if chunk:
# f.write(chunk)
for data in tqdm(r.iter_content(chunk_size=512)):
#tqdm进度条的使用,for data in tqdm(iterable)
f.write(data)
return file_path

接下来就是关于响应体工作流的说明


默认情况下,当你进行网络请求后,响应体会立即被下载。你可以通过 stream 参数覆盖这个行为,推迟下载响应体直到访问 Response.content 属性:

tarball_url = 'https://github.com/kennethreitz/requests/tarball/master' r = requests.get(tarball_url, stream=True)

此时仅有响应头被下载下来了,连接保持打开状态,因此允许我们根据条件获取内容:

if int(r.headers['content-length']) < TOO_LONG: content = r.content ...

你可以进一步使用 Response.iter_contentResponse.iter_lines 方法来控制工作流,或者以 Response.raw 从底层 urllib3 的 urllib3.HTTPResponse 读取。

如果你在请求中把 stream 设为 True,Requests 无法将连接释放回连接池,除非你 消耗了所有的数据,或者调用了 Response.close。 这样会带来连接效率低下的问题。如果你发现你在使用stream=True 的同时还在部分读取请求的 body(或者完全没有读取 body),那么你就应该考虑使用 contextlib.closing (文档), 如下所示:

from contextlib import closing with closing(requests.get('http://httpbin.org/get', stream=True)) as r: # 在此处理响应。

以上是"python爬虫如何爬取抖音热门音乐"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

音乐 热门 内容 爬虫 工作流 篇文章 工作 代码 数据 文件 学习 帮助 低下 接下来 义工 函数 参数 可以通过 同时 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州交易软件开发服务 查看固态硬盘隐藏数据库 软件开发管理人员的级别 定制服务器机箱怎么样 某高校教室管理系统的数据库设计 国外主要全文数据库的特点 网上网络安全宣传周 珠海定制化精益软件开发 软件开发职业规划800字 交警开展公安机关网络安全学习会 软件开发出来要维护吗 天津服务器维修虚拟主机 nas做网站服务器 数据库设计规范在哪查 直销软件开发的六大陷阱要注意 联通3g手机无法连接服务器 外国调查问卷数据库 论文查重的数据库来自于哪里 甘肃玉圭网络技术有限公司 游戏登录器获取不到服务器列表 上海海天网络技术有限公司 华勤软件开发怎么样 珠海软件开发商服务至上 移动端ui开发软件开发 国家的最新网络安全制度条例 三维模拟软件开发需求 杭州仕天网络技术 文摘类数据库有哪些 部队网络安全心得体会存在不足 戴尔服务器河南代理商
0