beautifulsoup4 标签选择器

from bs4 import BeautifulSoup

语法

soup = BeautifulSoup('源码', 'lxml')

html = """
<html><head><title>学习爬虫好开心</title></head>
<body>
<p class="title" name="dromouse"><b>( ̄TT ̄)笔芯</b></p>
<p class="story">喵了个猫
<a href="http://example.com/elsie" class="sister" id="link1">汪汪汪,汪星人</a> and
<a href="http://example.com/lacie" class="sister" id="link2">喵喵喵,喵星人</a>
最后变成一锅高汤</p>
<p class="story">...</p>
"""

标签解释器

soup = BeautifulSoup(html, 'lxml')
通过soup对象,标签获取整个标签的内容

通过soup对象,标签.string获取到标签内容

print(soup.title)

print(soup.title.string)
soup.p 获取的是第一个p标签的内容
print(soup.p)
print(soup.a)
print(soup.a.string)

通过soup对象.标签[属性] 或者soup对象.标签.attars[属性] 获取属性的值

print(soup.p['name'])
print(soup.p['class'])
print(soup.p.attrs['name'])
print(soup.p.attrs['class'])

获取兄弟节点
找soup对象.p标签.next_siblings找的是第一个p标签的下面的兄弟节点

print(soup.p.next_siblings)
print(list(soup.p.next_siblings))

soup对象.p标签.previous_siblings找的是第一个p标签的上面的兄弟节点

print(soup.p.previous_siblings)
print(list(soup.p.previous_siblings))

子节点

print(soup.body)
print(list(soup.body.children))

子孙节点 descendants

print('------------------------')
print(list(soup.body.children))
print('------------------------')
print(list(soup.body.descendants))

# 获取第二个p标签中的a标签的内容

print(list(list(soup.p.next_siblings)[1].children))

print(list(list(soup.p.next_siblings)[1].a))

父节点, 祖先节点

print(soup.a)

print('------------------------')

print(soup.a.parent)

print('------------------------')

print(list(soup.a.parents))

prettify将页面结构补充完整,且解析\n这一类的标签

print(soup.prettify())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值