Urllib+BeautifulSoup(抓取音频)

更多爬虫实例请见 https://blog.csdn.net/weixin_39777626/article/details/81564819

from bs4 import BeautifulSoup
from urllib.request import urlopen,urlretrieve,Request
import json

Url=[]
def getUrl(URL):
    try:
        headers = {
            'User-Agent': r'xxxxxxxxxxxxxxxx'
                          r'xxxxxxxxxxxxxxxxxxx',
            'Referer': r'http://www.ximalaya.com/99380456/album/12061818/',
            'Connection': 'keep-alive'
        }
        req = Request(URL, headers=headers)
        page = urlopen(req).read()
        bs4=BeautifulSoup(page,'lxml')
        pictures=bs4.find('div',class_='personal_container').find('div','personal_body').get('sound_ids')
        List=pictures.split(',')
        for i in List:
            i='http://www.ximalaya.com/tracks/'+i+'.json'
            Url.append(i)
        return Url
    except:
        return '...'

def getmusic(url):
    headers = {
            'User-Agent': r'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
                          r'Chrome/47.0.2526.108 Safari/537.36 2345Explorer/8.8.3.16721',
            'Referer': r'http://www.ximalaya.com/',
            'Connection': 'keep-alive'
        }
    req = Request(url, headers=headers)
    page = urlopen(req).read()
    page = page.decode('utf-8')
    a=json.loads(page)
    name=a.get('title')+'.m4a'
    music=a.get('play_path_64')
    urlretrieve(music,name)

for i in range(1,4):
    getUrl('http://www.ximalaya.com/15312621/album/381417?page=%d'%i)
    for url in Url:
        getmusic(url)

更多爬虫实例请见 https://blog.csdn.net/weixin_39777626/article/details/81564819

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: urllib 和 Beautiful Soup (bs4) 是 Python 中常用的网络爬虫库。 urllib 用于发送 HTTP 请求并接收响应,可以用来抓取网页内容。 Beautiful Soup 用于解析 HTML 或 XML 文档,可以帮助你从网页中提取有用的信息。 urllib 和 Beautiful Soup 的工作流程大致如下: 1. 使用 urllib 发送 HTTP 请求并接收响应。 2. 使用 Beautiful Soup 解析响应内容,提取有用的信息。 3. 根据需要,对获取的信息进行进一步处理。 urllib 和 Beautiful Soup 的优点是: - 简单易用:urllib 和 Beautiful Soup 提供了丰富的 API,使得网络爬虫的开发变得更加容易。 - 功能强大:urllib 和 Beautiful Soup 支持多种不同的 HTTP 请求方法,可以通过自定义 HTTP 头来模拟浏览器访问,并支持多种解析器,可以解析 HTML 和 XML 文档。 urllib 和 Beautiful Soup 的缺点是: - 运行速度较慢:urllib 和 Beautiful Soup 的运行速度相对较慢,对于大规模的网络爬虫,可能会影响效率。 - 不能处理 JavaScript:urllib 和 Beautiful Soup 只能处理静态的 HTML 或 XML 文档,对于那些使用 JavaScript 动态生成的网页,无法处理。 ### 回答2: urllibbeautifulsoup(bs4)是两个经常被用于网络爬虫的Python库。urllib是一个用于处理网络请求的库,它提供了打开URL、发送HTTP请求、处理响应等功能。而beautifulsoup是一个用于解析HTML和XML文档的库,它可以从HTML页面中提取出需要的信息。 urllib的工作流程如下:首先,我们使用urllib的请求方法打开并读取URL地址,获取到对应的HTML页面内容。接下来,将这个内容传给beautifulsoup进行解析。利用beautifulsoup,我们可以通过选择器(CSS选择器或Xpath表达式)来定位和提取出我们需要的标签或元素,或者找到页面中的特定文本。 urllibbeautifulsoup的优点是: 1. 简单易用:它们都是Python标准库中的模块,不需额外安装即可使用,使用方法也相对简单。 2. 功能强大:urllib可以方便地发送HTTP请求、处理响应和获取页面内容,而beautifulsoup则提供了强大的解析和搜索功能,可以高效地从HTML或XML中提取信息。 3. 广泛支持:urllib支持各种HTTP请求方法(GET、POST等),并且兼容不同的Python版本。beautifulsoup则支持解析多种类型的文档,包括HTML、XML等。 4. 开源免费:它们都是开源免费的软件,可以根据自己的需求进行调整和修改。 然而,它们也存在一些缺点: 1. 执行效率有限:在大规模爬取数据时,urllib运行速度可能较慢,因为它的功能相对简单,不能进行高级的并发处理。 2. 需要编写较多代码:使用这两个库需要编写一些代码来发送请求、处理响应和解析页面,对于不熟悉Python的开发者来说可能需要一定的学习成本。 3. 对于一些特殊情况的处理有限:urllibbeautifulsoup虽然功能强大,但对于一些特殊的网页结构或反爬虫机制的处理可能有一定限制,需要开发者根据具体情况进行处理。 综上所述,urllibbeautifulsoup是实现网络爬虫功能的两个重要工具,它们的简单易用和功能强大使得它们在爬取数据和解析网页时广受开发者青睐,并被用于各种数据挖掘和分析的应用场景。 ### 回答3: urllib和bs4是Python中用于处理URL和解析HTML的两个常用库。 urllib库主要用于打开URL和进行网页内容读取。其工作流程大致如下: 1. 导入urllib库和相关模块。 2. 使用urllib的urlopen方法打开URL链接,获取一个HTTPResponse对象。 3. 通过HTTPResponse对象的read方法读取网页内容,并使用decode方法解码为字符串。 4. 对获取到的网页内容进行进一步处理,比如解析HTML标签、提取数据等。 bs4库是基于HTML解析器(如lxml、html5lib等)的Python包,用于从HTML文档中提取数据。其工作流程大致如下: 1. 导入bs4库和相关模块。 2. 使用bs4的BeautifulSoup类和指定的HTML解析器创建一个BeautifulSoup对象。 3. 使用BeautifulSoup对象对HTML文档进行解析,提取需要的数据。 4. 进行数据的处理和操作,如提取特定标签、查找特定内容、遍历等操作。 这两个库的优点和缺点如下: urllib库的优点: 1. 自带的模块,不需要额外安装。 2. 功能比较简单,适用于简单的URL读取和内容获取urllib库的缺点: 1. 功能相对较少,不能方便地进行HTML解析和提取数据。 2. 对于复杂的URL读取、请求和处理,需要编写较多的代码。 bs4库的优点: 1. 可以方便地进行HTML解析和提取数据,提供了一系列灵活的方法。 2. 支持多种HTML解析器,可以根据需要选择合适的解析器。 bs4库的缺点: 1. 需要额外安装,可能会增加项目的依赖。 2. 对于简单的URL读取和内容获取,bs4库可能显得过于复杂,不是最好的选择。 综上所述,urllib适用于简单的URL读取和内容获取,而bs4适用于复杂的HTML解析和数据提取。根据实际需求,我们可以选择合适的库来完成相应的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值