前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫实战之自动下载网页音频文件

python爬虫实战之自动下载网页音频文件

作者头像
python学习教程
发布2021-09-30 10:26:36
1.9K0
发布2021-09-30 10:26:36
举报
文章被收录于专栏:python学习教程python学习教程

一、使用到的库

1、requests

用来发送http请求。

2、BeautifulSoup

一个灵活又方便的网页解析库,处理高效,支持多种解析器。

利用它就不用编写正则表达式也能方便的实现网页信息的抓取。

3、安装和引入:

代码语言:javascript
复制
pip install requests
pip install BeautifulSoup
代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup as bf

二、目标网站

一个需要手动点击下载mp3文件的网站,因为需要下载几百个所以很难手动操作。

三:获取并解析网页源代码

1、使用requests获取目标网站的源代码

代码语言:javascript
复制
r = requests.get('http://www.goodkejian.com/ertonggushi.htm')

所有下载链接被存放在<a></a>标签内,并且长度固定。该链接将其中的amp;去除后方可直接下载。

2、使用BeautifulSoup将网页内容解析并将其中的<a></a>标签提取出来

代码语言:javascript
复制
soup = bf(r.text, 'html.parser')
res = soup.find_all('a')

四:下载

经过上述步骤res就变成了包含所有目标标签的数组,要想下载网页上的所有mp3文件,只要循环把res中的元组转换为字符串,并经过筛选、裁剪等处理后变成链接就可以使用request访问了,并且返回值就是mp3文件的二进制表示,将其以二进制形式写进文件即可。

全部代码如下:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup as bf

r = requests.get('http://www.goodkejian.com/ertonggushi.htm')

soup = bf(r.text, 'html.parser')
res = soup.find_all('a')

recorder = 1
# 长度为126的是要找的图标
for i in res:
    dst = str(i)
    if dst.__len__() == 126:
        url1 = dst[9:53]
        url2 = dst[57:62]
        url = url1 + url2
        print(url)
        xjh_request = requests.get(url)
        with open("./res/" + str(recorder) + ".rar", 'wb') as file:
            file.write(xjh_request.content)
        file.close()
        recorder += 1
        print("ok")

以上就是使用python爬虫自动下载网页音频文件的思路和全部代码,大家可以套入代码尝试下载进行实战练习哦~

代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档