首页 > 其他分享 >BeautifulSoup模块

BeautifulSoup模块

时间:2022-11-20 17:14:41浏览次数:60  
标签:标签 BeautifulSoup soup html 模块 print class 属性

BeautifulSoup模块

参考资料:https://www.cnblogs.com/hanmk/p/8724162.html

安装
pip install beautifulsoup4
基本使用
from bs4 import BeautifulSoup

import requests

url = 'http://python123.io/ws/demo.html'
r = requests.get(url)
demo = r.text  # 服务器返回响应

soup = BeautifulSoup(demo, "html.parser")
"""
demo 表示被解析的html格式的内容
html.parser表示解析用的解析器
"""
print(soup)  # 输出响应的html对象
print(soup.prettify())  # 使用prettify()格式化显示输出

print(soup.title)  # 获取html的title标签的信息
print(soup.a)  # 获取html的a标签的信息(soup.a默认获取第一个a标签,想获取全部就用for循环去遍历)
print(soup.a.name)   # 获取a标签的名字
print(soup.a.parent.name)   # a标签的父标签(上一级标签)的名字
print(soup.a.parent.parent.name)  # a标签的父标签的父标签的名字

print('a标签类型是:', type(soup.a))   # 查看a标签的类型
print('第一个a标签的属性是:', soup.a.attrs)  # 获取a标签的所有属性(注意到格式是字典)
print('a标签属性的类型是:', type(soup.a.attrs))  # 查看a标签属性的类型
print('a标签的class属性是:', soup.a.attrs['class'])   # 因为是字典,通过字典的方式获取a标签的class属性
print('a标签的href属性是:', soup.a.attrs['href'])   # 同样,通过字典的方式获取a标签的href属性

print('第一个a标签的内容是:', soup.a.string)  # a标签的非属性字符串信息,表示尖括号之间的那部分字符串
print('a标签的非属性字符串的类型是:', type(soup.a.string))  # 查看标签string字符串的类型
print('第一个p标签的内容是:', soup.p.string)  # p标签的字符串信息(注意p标签中还有个b标签,但是打印string时并未打印b标签,说明string类型是可跨越多个标签层次)

print('所有a标签的内容:', soup.find_all('a')) # 使用find_all()方法通过标签名称查找a标签,返回的是一个列表类型
print('a标签和b标签的内容:', soup.find_all(['a', 'b']))  # 把a标签和b标签作为一个列表传递,可以一次找到a标签和b标签

print('href属性为http..的a标签元素是:', soup.find_all('a', href='http://www.icourse163.org/course/BIT-268001'))  # 标注属性检索
print('class属性为title的标签元素是:', soup.find_all(class_='title'))  # 指定属性,查找class属性为title的标签元素,注意因为class是python的关键字,所以这里需要加个下划线'_'
print('id属性为link1的标签元素是:', soup.find_all(id='link1'))  # 查找id属性为link1的标签元素


标签:标签,BeautifulSoup,soup,html,模块,print,class,属性
From: https://www.cnblogs.com/startstart/p/16908902.html

相关文章

  • AES_加密模块
    AES_加密模块参考连接https://mp.weixin.qq.com/s?__biz=MzIwNDI1NjUxMg==&mid=2651262030&idx=1&sn=9fe47330bad26de7b5025a812aff476d&chksm=8d314821ba46c1375ca4edaf......
  • ES6之模块化
    模块化模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。 模块化的好处模块化的优势有以下几点:1)防止命名冲突2)代码复用3)高维护性 模......
  • YOLOV5 train模块写,没验证对错,能跑
    importtorchimporttorch.nnasnnimporttorch.optimasoptimimportdatasetimportmodelsimportnn_utilsclassYoloHead(nn.Module):def__init__(se......
  • Python 基础之wmi模块(windows监控)
    背景:最近学习Python监控系统状态的Psutil模块时。看到很多函数都是针对某些系统(如Linux、FreeBSD )的时就在想,既然有那么多监听系统状态的函数没有兼容win系统那......
  • VUE模块划分
    bg-extend├──src│ ├──App.vue│ ├──api│ │ ├──tenant│ │ │ └──manager.js│ │ └──vote模块名-活动管理接......
  • 黏包现象及struct模块
    目录黏包现象struct模块解决黏包现象黏包代码实操UDP协议(了解)黏包现象黏包现象1.服务端连续执行三次recv2.客户端连续执行三次send执行上述两端的操作,服务端一次性......
  • 同步、异步与阻塞、非阻塞的概念、创建进程的多种方式及multiprocessing模块、进程间
    目录一、同步与异步同步异步二、阻塞与非阻塞阻塞非阻塞三、综合使用1.同步阻塞:2.同步非阻塞:3.异步阻塞:4.异步非阻塞:四、创建进程的多种方式进程的创建multiprocessing模块......
  • IoT物联网无线通信模块该如何选择?
    目前大多数物联网(IoT)的节点都是使用ZigBee技术来进行组网的,然后通过gateway(网关)来连接网络。但是ZigBee模块的优势并不明显,也有很多公司正在开发新的无线模块来代替它,例如lo......
  • 华普物联HP-ERS-T200,振动传感器监测方案,工业级双串口通信服务器,RS485/232转以太网双
    随着科技的进步,现在工业化设备正逐步走向复杂化、高速化、自动化。为了掌握设备运行状态、避免发生事故,对生产中的关键机组实行在线监测和故障诊断,也越来越引起人们的重视......
  • 光模块有什么用?什么是SFP光模块?
    光模块(opticalmodule)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。光模块主要应用在光通信、数据中心等地方的。那么,光模块到底是什么呢?光模块......