beautifulsoup4教程(四)css选择器

beautifulsoup4教程(一)基础知识和第一个爬虫

beautifulsoup4教程(二)bs4中四大对象

beautifulsoup4教程(三)遍历和搜索文档树

beautifulsoup4教程(四)css选择器


六、CSS选择器

6.1 通过标签名查找
print soup.select('title')
print soup.select('a')
print soup.select('b')

result:
[<title>The Dormouse's story</title>]
[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
[<b>The Dormouse's story</b>]
6.2 通过类名查找
print soup.select('.story')

result:
[<p class="story">Once upon a time there were three little sisters; and their names were\n<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>,\n<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a> and\n<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>;\nand they lived at the bottom of a well.</p>, <p class="story">...</p>]
6.3 通过id名查找
print soup.select('#link1')

result:
print soup.select('#link1')
6.4 组合查找

多个过滤条件需要用空格隔开,从前往后是逐层筛选,选择器作用的不是 同一个结点。

print soup.select('p #link1')
print soup.select('a #link1')

result:
[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
[]

通过下面这种方式会更好理解

print soup.select('p >#link1')
print soup.select('a >#link1')

result:
[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
[]
6.5 属性查找
print soup.select('p >a')
print soup.select('p >a[href="http://example.com/tillie"]')

result:
[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
[<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
6.6 列表迭代
  • 通过上述方法返回的都是列表,是可迭代对象。
print soup.select('p >a')
print type(soup.select('p >a'))
print "===="
print soup.select('p >a')[0]
print "===="
for a in soup.select('p >a'):
    print a
    
result:
[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
<type 'list'>
====
<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>
====
<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>
<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>
<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值