返回顶部
首页 > 资讯 > 后端开发 > Python >BeautifulSoup与aiohtt
  • 700
分享到

BeautifulSoup与aiohtt

BeautifulSoupaiohtt 2023-01-31 00:01:25 700人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

  香港电台的节目素质都比较不错,其中有个《中华五千年》的节目是以情景剧与旁白的形式来展示历史故事,由传说时代一直到民国,1983年首播至2000年,非常长寿的一个节目。网上能找到版本声音非常模糊,不过在其《网上中华五千年》的网站上可以在

  香港电台的节目素质都比较不错,其中有个《中华五千年》的节目是以情景剧与旁白的形式来展示历史故事,由传说时代一直到民国,1983年首播至2000年,非常长寿的一个节目。网上能找到版本声音非常模糊,不过在其《网上中华五千年》的网站上可以在线收听所有节目。虽然可以在线听,但要science上网,而且在线听中断了就不能再续着听,很难受。因此,就想到利用python来的爬虫来把节目都下载下来慢慢听。

  

  在浏览器打开审查元素找到音频的链接标签,发现链接都在class为.listen-button的a标签里。只要定位到这个标签,取出text作为文件名,href作为下载url就可以了。

  代码很简单,首先,主体结构是这样的:

'''
    下载中华五千年
'''
from bs4 import BeautifulSoup
import requests,urllib,re
import time
import aioHttp
import asyncio
import os

async def main():
    start_page = 1
    while True:     
        url = 'http://rthk9.rthk.hk/chiculture/fivethousandyears/subpage{0}.htm'.fORMat(start_page)
        soup = await getUrl(url)      #取html内容
        if not soup.title: return   #直到无内容退出
        title = soup.title.text 
        title = title[title.rfind(' ')+1:]
        listenbutton = soup.select(".listen-button") #查出所有.listen-button类的标签
        #根据title 创建相应的文件夹
        rootPath = './中华五千年/'
        if not os.path.exists(rootPath + title):
            os.makedirs(rootPath + title)

        for l in listenbutton:
            if  l.text != "":
                href = l['href']
                filename  = str(title) +'_' + str(l.text)
                if filename.find('公元') > -1
                    await download(filename=filename,url=href,title=title)  #下载语音
start_page += 1 #下一页 asyncio.run(main())

其中异步函数(协程)getUrl :

async def getUrl(url):
    async with aiohttp.ClientSession() as session:
        #因需science上网所以需要本地代理
        async with session.get(url,proxy='http://127.0.0.1:1080') as resp:
            wb_data = await resp.text()
            soup = BeautifulSoup(wb_data,'lxml')
    return soup

异步下载语音函数  download:

async def download(url,filename,title):
    file_name = './中华五千年/{0}/{1}'.format(title,filename + '.mp3') 
    async with aiohttp.ClientSession() as session:
        async with session.get(url,proxy='http://127.0.0.1:1080') as resp:
            with open(file_name, 'wb') as fd:
                while True:
                    chunk = await resp.content.read()
                    if not chunk:
                        break
                    fd.write(chunk)

由于用了异步IO的方式,很快便可以下载完一页。

--结束END--

本文标题: BeautifulSoup与aiohtt

本文链接: https://lsjlt.com/news/182249.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • BeautifulSoup与aiohtt
      香港电台的节目素质都比较不错,其中有个《中华五千年》的节目是以情景剧与旁白的形式来展示历史故事,由传说时代一直到民国,1983年首播至2000年,非常长寿的一个节目。网上能找到版本声音非常模糊,不过在其《网上中华五千年》的网站上可以在...
    99+
    2023-01-31
    BeautifulSoup aiohtt
  • python BeautifulSoup
    通过BeautifulSoup库的get_text方法找到网页的正文:#!/usr/bin/env python #coding=utf-8 #HTML找出正文 import requests from bs4 import Beaut...
    99+
    2023-01-31
    python BeautifulSoup
  • BeautifulSoup的基本用法
          前言 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。 它是一个灵活又方便的网页解析...
    99+
    2023-01-30
    BeautifulSoup
  • Python中BeautifulSoup模块详解
    目录前言安装库导入库解析文档示例提取数据示例CSS选择器实例小项目总结前言     BeautifulSoup是主要以解析web网页的Python模块,...
    99+
    2024-04-02
  • BeautifulSoup常用语法有哪些
    本篇内容主要讲解“BeautifulSoup常用语法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“BeautifulSoup常用语法有哪些”吧!解析库Be...
    99+
    2024-04-02
  • Python中有哪些BeautifulSoup对象
    Python中有哪些BeautifulSoup对象?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • 使用BeautifulSoup和正则表达
    还有一年多就要毕业了,不准备考研的我要着手准备找实习及工作了,所以一直没有更新。 因为Python是自学不久,发现很久不用的话以前学过的很多方法就忘了,今天打算使用简单的BeautifulSoup和一点正则表达式的方法来爬一下top100...
    99+
    2023-01-31
    正则 BeautifulSoup
  • python爬虫怎么使用BeautifulSoup库
    本篇内容介绍了“python爬虫怎么使用BeautifulSoup库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  BeautiSoup类...
    99+
    2023-06-02
  • beautifulsoup库怎么在python中使用
    今天就跟大家聊聊有关beautifulsoup库怎么在python中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 BeautifulSoup库简介BeautifulSoup库在...
    99+
    2023-06-06
  • python BeautifulSoup中findNext()函数怎么使用
    在BeautifulSoup中,`findNext()`函数用于查找当前标签的下一个同级标签。它可以根据标签名、属性或文本内容来查找...
    99+
    2023-09-27
    python
  • Python使用BeautifulSoup实现解析网页
    目录一. 安装 Beautiful Soup二. 发送 HTTP 请求三. 解析 HTML四. 提取信息五. 示例:爬取文章标题和链接六. 处理翻页一. 安装 Beautiful S...
    99+
    2023-05-19
    Python BeautifulSoup解析网页 Python BeautifulSoup解析页面 Python BeautifulSoup
  • BeautifulSoup怎么解析XML命名空间
    要解析XML命名空间,可以使用BeautifulSoup库中的XML解析器,并传递一个额外的参数“features=‘xml’”给B...
    99+
    2024-05-15
    BeautifulSoup
  • Python中怎么利用Beautifulsoup爬取网站
    这篇文章将为大家详细讲解有关Python中怎么利用Beautifulsoup爬取网站,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.开始前准备1 python3,本篇博客内容采用pytho...
    99+
    2023-06-17
  • Python爬虫之BeautifulSoup的基本使用教程
    目录bs4的安装bs4的快速入门解析器的比较(了解即可)对象种类bs4的简单使用获取标签内容获取标签名字获取a标签的href属性值遍历文档树案例练习思路代码实现总结bs4的安装 要使...
    99+
    2024-04-02
  • python 中的 BeautifulSoup 网页使用方法解析
    目录一、安装二、html.parser解析三、外部文档解析四、标签选择器五、css选择器六、节点遍历七、find_all方法八、find方法一、安装 Bautiful Soup 是第...
    99+
    2024-04-02
  • 利用requests+BeautifulSoup爬取网页关键信息
    一、requests库基础知识Requests的方法  requests库的response对象二、爬取网站所需信息访问网站,如图1-1所示:图1-1点击子页面,审查网页元素,部分内容如图1-2所示:图1-2实现代码如下...
    99+
    2023-06-02
  • Python爬虫包 BeautifulSoup 递归抓取实例详解
    Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容。它们的本质是一种递归的过程。它们首先需要获得网页的内容,然后分析页面内容并找到另一个...
    99+
    2022-06-04
    递归 爬虫 详解
  • Python 爬虫:如何用 BeautifulSoup 爬取网页数据
    在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Py...
    99+
    2023-10-23
    python 爬虫 beautifulsoup
  • Python使用BeautifulSoup库解析HTML基本使用教程
    BeautifulSoup是Python的一个第三方库,可用于帮助解析html/XML等内容,以抓取特定的网页信息。目前最新的是v4版本,这里主要总结一下我使用的v3版本解析html的一些常用方法。 准备...
    99+
    2022-06-04
    教程 Python BeautifulSoup
  • Python爬虫之使用BeautifulSoup和Requests抓取网页数据
    目录一、简介二、网络爬虫的基本概念三、Beautiful Soup 和 Requests 库简介四、选择一个目标网站五、使用 Requests 获取网页内容六、使用 Beautifu...
    99+
    2023-05-14
    Python爬虫 使用BeautifulSoup和Requests Python爬虫抓取网页数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作