python tag对象下有多个标签、属性_Python BeautifulSoup使用教程|Tag对象,HTML标签,Attributes,,find_all,attrs参数,limit,recur...

本文详细介绍了如何使用Python的BeautifulSoup库解析HTML和XML文档,提取所需数据。从库的安装到Tag对象的使用,包括获取标签、属性、字符串、子节点、父节点和兄弟节点等方法,还涵盖了find_all()和find()函数的使用,以及CSS选择器的选取。通过实例展示了如何从网页中抓取指定标签和属性,是学习BeautifulSoup的实用教程。
摘要由CSDN通过智能技术生成

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性。通过Beautiful Soup库,我们可以将指定的class或id值作为参数,来直接获取到对应标签的相关数据。

当前最新的 Beautiful Soup 版本为4.8.1。本文示例使用的Python版本为3.7。

Mac系统,直接通过命令安装库:

sudo easy_install beautifulsoup4

安装完成后,尝试包含库运行:

from bs4 import BeautifulSoup

若没有报错,则说明库已正常安装完成。

windows直接用pycharm安装如下图:

开始

本文会通过这个网页:https://www.pythonf.cn/ 来进行示例讲解,如下图所示

BeautifulSoup 对象初始化

将一段文档传入 BeautifulSoup 的构造方法,就能得到一个文档对象。如下代码所示,文档通过请求url获取:#coding:utf-8frombs4 importBeautifulSoup

fromurllib importrequest

url = 'https://pythonf.cn'headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}

req = request.Request(url, headers=headers)

response = request.urlopen(req)

content = response.read()

soup = BeautifulSoup(content, 'html.parser')

BeautifulSoup 构造方法的第二个参数为文档解析器,若不传入该参数,BeautifulSoup会自行选择最合适的解析器来解析文档,不过会有警告提示。

也可以通过文件句柄来初始化,可先将HTML的源码保存到本地同级目录 reo.html,然后将文件名作为参数:

soup = BeautifulSoup(open('reo.html'))

可以打印 soup,输出内容和HTML文本无二致,此时它为一个复杂的树形结构,每个节点都是Python对象。

Ps. 接下来示例代码中所用到的 soup 都为该soup。

Tag

Tag对象与HTML原生文档中的标签相同,可以直接通过对应名字获取#coding:utf-8frombs4 importBeautifulSoup

fromurllib importrequest

url = 'https://pythonf.cn'headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}

req = request.Request(url, headers=headers)

response = request.urlopen(req)

content = response.read()

soup = BeautifulSoup(content, 'html.parser')

tag = soup.title

print(tag)

打印结果:

Name

通过Tag对象的name属性,可以获取到标签的名称tag = soup.title

print(tag.name)

Attributes

一个tag可能包含很多属性,如id、class等,操作tag属性的方式与字典相同。

例如网页中导航栏标签 nav

获取它 class 属性的值#coding:utf-8frombs4 importBeautifulSoup

fromurllib importrequest

url = 'https://pythonf.cn'headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}

req = request.Request(url, headers=headers)

response = request.urlopen(req)

content = response.read()

soup = BeautifulSoup(content, 'html.parser')

tag = soup.nav

c = tag['cl

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值