BeautifulSoup安装、使用和示例

这篇具有很好参考价值的文章主要介绍了BeautifulSoup安装、使用和示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、BeautifulSoup是什么?

  1. BeautifulSoup简称: bs4 。

  1. 什么是BeatifulSoup? BeautifulSoup,和lxml一样,是一个html的解析器,主要功能也是解析和提取数据 。

  1. 优缺点?

  • 缺点:效率没有lxml的效率高

  • 优点:接口设计人性化,使用方便。

二、bs4安装

  1. 快速安装 --> pip install bs4 -i https://pypi.douban.com/simple

  1. 在pycharm中的Settings中直接添加:

BeautifulSoup安装、使用和示例
BeautifulSoup安装、使用和示例

3.在编辑器里导入from bs4 import BeautifulSoup

4.创建对象

服务器响应的文件生成对象 :

soup = BeautifulSoup(response.read().decode(), 'lxml')

本地文件生成对象:

soup = BeautifulSoup(open('1.html'), 'lxml')

注意:默认打开文件的编码格式gbk所以需要指定打开编码格式。

三、bs4的使用

1.要解析的html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <ul>
            <li id="l1">张三</li>
            <li id="l2">李四</li>
            <li>王五</li>
            <a href="" id="" class="a1">python</a>
            <span>嘿嘿嘿</span>
        </ul>
    </div>
    <a href="" title="a2">百度</a>
    <div id="d1">
        <span>
            哈哈哈
        </span>
    </div>
    <p id="p1" class="p1">呵呵呵</p>
</body>
</html>

(1)找到的是第一个符合条件的数据,并获取标签的属性和属性值

from bs4 import BeautifulSoup
# 本地文件生成对象
# 注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
soup = BeautifulSoup(open('解析_bs4的基本使用.html',encoding='utf-8'), 'lxml')
# 根据标签名查找节点
# 找到的是第一个符合条件的数据
print(soup.a)
# 获取标签的属性和属性值
print(soup.a.attrs)

结果:

BeautifulSoup安装、使用和示例

(2)bs4 find函数示例:返回的是第一个符合条件的数据

from bs4 import BeautifulSoup
# 本地文件生成对象
# 注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
soup = BeautifulSoup(open('解析_bs4的基本使用.html',encoding='utf-8'), 'lxml')
# bs4的一些函数
# (1)find
# 返回的是第一个符合条件的数据
print(soup.find('a'))
# 根据title的值来找到对应的标签对象
print(soup.find('a', title="a2"))
# 根据class的值来找到对应的标签对象  注意的是class需要添加下划线
print(soup.find('a', class_="a1"))

结果:

BeautifulSoup安装、使用和示例

(3)find_all 方法是返回所有符合条件的数据(列表形式)

from bs4 import BeautifulSoup
# 本地文件生成对象
# 注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
soup = BeautifulSoup(open('解析_bs4的基本使用.html',encoding='utf-8'), 'lxml')
# (2)find_all  返回的是一个列表 并且返回了所有的a标签
print(soup.find_all('a'))
# 如果想获取的是多个标签的数据 那么需要在find_all的参数中添加的是列表的数据
print(soup.find_all(['a', 'span']))
# limit的作用是查找前几个数据
print(soup.find_all('li', limit=2))

结果:

BeautifulSoup安装、使用和示例

(4)select方法返回的是一个列表(符合条件的所有数据)

from bs4 import BeautifulSoup
# 本地文件生成对象
# 注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
soup = BeautifulSoup(open('解析_bs4的基本使用.html',encoding='utf-8'), 'lxml')

# (3)select(推荐)
# select方法返回的是一个列表  并且会返回多个数据
print(soup.select('a'))
#
# 可以通过.代表class  我们把这种操作叫做类选择器
print(soup.select('.a1'))
#
# 可以通过#代表id 我们把这种操作叫做id选择器
print(soup.select('#l1'))
# 属性选择器---通过属性来寻找对应的标签
# 查找到li标签中有id的标签
print(soup.select('li[id]'))

# 查找到li标签中id为l2的标签
print(soup.select('li[id="l2"]'))

# 层级选择器
#  后代选择器
# 找到的是div下面的li
print(soup.select('div li'))

# 子代选择器
#  某标签的第一级子标签
# 注意:很多的计算机编程语言中 如果不加空格不会输出内容  但是在bs4中 不会报错 会显示内容
print(soup.select('div > ul > li'))

# 找到a标签和li标签的所有的对象
print(soup.select('a,li'))

结果:

BeautifulSoup安装、使用和示例

(5)select节点信息

from bs4 import BeautifulSoup
# 本地文件生成对象
# 注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
soup = BeautifulSoup(open('解析_bs4的基本使用.html',encoding='utf-8'), 'lxml')

# 节点信息
# 获取节点内容
obj = soup.select('#d1')[0]
# 如果标签对象中 只有内容 那么string和get_text()都可以使用
# 如果标签对象中 除了内容还有标签 那么string就获取不到数据 而get_text()是可以获取数据
# 我们一般情况下  推荐使用get_text()
print(obj.string)
print(obj.get_text())

# 节点的属性
obj = soup.select('#p1')[0]
# name是标签的名字
print(obj.name)
# 将属性值左右一个字典返回
print(obj.attrs)

# 获取节点的属性
obj = soup.select('#p1')[0]
#
print(obj.attrs.get('class'))
print(obj.get('class'))
print(obj['class'])

结果:

BeautifulSoup安装、使用和示例

四.星巴克案例

BeautifulSoup安装、使用和示例

解析代码如下:

import urllib.request
from bs4 import BeautifulSoup
url = 'https://www.starbucks.com.cn/menu/'
response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')

soup = BeautifulSoup(content, 'lxml')
# xpath插件获取 //ul[@class='grid padded-3 product']//strong/text()
name_list = soup.select('ul[class="grid padded-3 product"] strong')
for name in name_list:
    print(name.string)

结果:文章来源地址https://www.toymoban.com/news/detail-494797.html

BeautifulSoup安装、使用和示例

到了这里,关于BeautifulSoup安装、使用和示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python beautifulsoup4解析 数据提取 基本使用

    Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。 提示:以下是本篇文章正文内容,下面案例可供参考 建议把代码复

    2023年04月08日
    浏览(41)
  • python3 爬虫相关学习7:初步摸索使用 BeautifulSoup

    目录 1 一个爬图片pic的代码的例子 1.1 学习的原文章 1.2 原始代码的问题总结 问题1 问题2 问题3 其他问题 1.3 原始代码 2  直接在cmd里 python运行报错 和 处理 2.1 运行报错 2.2 报错原因: 没有提前安装这个bs4  模块 2.3 如何提前知道我的python环境下有没有安装bs4 或其他模块呢

    2024年02月08日
    浏览(43)
  • 蚁剑安装使用教程(附:上传漏洞示例)

    蚁剑(AntSword)是一款开源的跨平台WebShell管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。是一款非常优秀的webshell管理工具。 加载(启动)器: https://github.com/AntSwordProject/AntSword-Loader 核心源码: https://github.com/AntSwordProject/antSword 1.下载为两

    2023年04月09日
    浏览(68)
  • python爬虫之redis安装及使用示例

    Redis是一个开源的、内存中的数据结构存储,用于缓存、消息队列和会话存储等。Redis的数据结构非常强大,例如支持Hash、String、Set和List等数据类型,而且能够使用Lua脚本进行批量操作,因此在Python爬虫工具中被广泛应用。在本文中,我们将向您介绍Redis在Python爬虫中的运用

    2024年02月08日
    浏览(36)
  • 使用爬虫爬取百度搜索结果及各网站正文(request库、selenium库和beautifulsoup库)

    任务: 给定搜索词,获取百度搜索结果 根据各项结果获取对应网站正文部分 header实际为一个字典,为访问百度时提供必要的信息。 一般来讲只需要提供 Cookie 就可以访问大多数网站,其余可能需要的还有 Host 、 User-Agent 等 通过分析百度搜索url可以发现 https://www.baidu.com/s?wd=茅

    2024年03月27日
    浏览(51)
  • 爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】

    在本篇博客中,我们将使用 Python 的 Selenium 和 BeautifulSoup 库来实现一个简单的网页爬虫,目的是爬取豆瓣电影TOP250的数据,并将结果保存到Excel文件中。 Selenium 是一个自动化测试工具,可以模拟用户在浏览器中的交互操作。我们将使用 Selenium 来打开网页、获取网页源码。 B

    2024年02月12日
    浏览(51)
  • Python实战:使用selenium及BeautifulSoup4进行BOOS直聘信息爬取与数据累积【附源码】

    操作系统 :适用于Windows、macOS、Linux。 Python版本 :Python 3.6及以上。 依赖库 : selenium:用于模拟浏览器操作。 webdriver_manager:自动管理驱动程序。 BeautifulSoup4:解析HTML页面。 pandas:数据处理和CSV文件操作。 logging:日志记录。 本项目旨在通过Selenium模拟用户浏览器行为,获

    2024年04月27日
    浏览(44)
  • 使用Python的Requests和BeautifulSoup库来爬取新闻网站的新闻标题、发布时间、内容等信息,并将数据存储到数据库中

    BeautifulSoup是Python的一个HTML/XML解析库,用于从HTML或XML文件中提取数据。结合Python的requests库,可以实现网页爬取和数据提取。 以下是一个简单的使用BeautifulSoup和requests库实现爬虫的示例:   用requests库和BeautifulSoup4库,爬取校园新闻列表的时间、标题、链接、来源。

    2024年02月10日
    浏览(54)
  • docker--在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例

    将instantclient-basic-linux.x64-11.2.0.4.0.zip解压至/home/jupyter/oracle/ 将instantclient-sqlplus-linux.x64-11.2.0.4.0.zip解压/home/jupyter/oracle/【可选,提供sqlplus命令】 复制【操作系统一般都有安装libaio.so】 cp /usr/lib64/libaio.so.1 /home/jupyter/oracle/instantclient_11_2/ ln -s /home/jupyter/oracle/instantclient_11_2/libcln

    2024年02月07日
    浏览(44)
  • Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice

    docker pull onlyoffice/documentserver docker images 以下是将本机的9001端口映射到docker的80端口上,访问时通过服务器ip:9001访问,并且用 -v 将本机机==/data/aws_s3/file-storage==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹 doc

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包