Beautiful Soup-学习笔记

使用CSS选择器

CSS选择器:[http://www.w3school.com.cn/cssref/css_selectors.asp]
Beautiful Soup文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

基础用法

html='''
<div class="panel">
    <div class="panel-heading">
        <h4>Hello</h4>
    </div>
    <div class="panel-body">
        <ul class="list" id="list-1">
            <li class="element">Foo</li>
            <li class="element">Bar</li>
            <li class="element">Jay</li>
        </ul>
        <ul class="list list-small" id="list-2">
            <li class="element">Foo</li>
            <li class="element">Bar</li>
        </ul>
    </div>
</div>
'''
soup = BeautifulSoup(html, 'lxml')

# 查找class=panel 中,class=panel-heading
print(soup.select('.panel .panel-heading'))    # 选择class 用 . 查找之间用空格来分隔
[<div class="panel-heading">
<h4>Hello</h4>
</div>]

# 查找标签ul 中,标签li
print(soup.select('ul li'))
[<li class="element">Foo</li>, <li class="element">Bar</li>, <li class="element">Jay</li>, <li class="element">Foo</li>, <li class="element">Bar</li>]

# 查找 id = list-2 中 class=element
print(soup.select('#list-2 .element'))    # 选择id 用 # 
[<li class="element">Foo</li>, <li class="element">Bar</li>]

获取属性

[‘属性名’] 或 .attrs[‘属性名’]

for ul in soup.select('ul'):    # 筛选ul,获取list,遍历得到id属性(两种方法)
    print(ul['id'])
    print(ul.attrs['id'])

list-1
list-1
list-2
list-2

获取内容

get_text() 或 .string

for li in soup.select('li'):
    print('Get Text:', li.get_text())
    print('String:', li.string)

Get Text: Foo
String: Foo
Get Text: Bar
String: Bar
Get Text: Jay
String: Jay
Get Text: Foo
String: Foo
Get Text: Bar
String: Bar
# 二者的效果是完全一致的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值