爬虫(BeautifulSoup--select--class的选择)

本文介绍了如何使用BeautifulSoup的select方法选择带有特定class的元素。讲解了无空格和有空格的情况,如select(.item.name)和select(.item .name)的区别,并列举了其他选择方式,包括通过标签名、类名、ID名的查找,以及组合查找和直接子标签查找。同时提到了属性查找,强调了属性与标签在同一节点时中间不应有空格。

<div class="item name" title="中央公园">

<a href="/Attraction_Review-g60763-d105127-Reviews-Central_Park-New_York_City_New_York.html" target="_blank" class="poiTitle" onclick="widgetEvCall('handlers.shelfItemClick', event, this)" data-tpp="Attractions" data-tpact="shelf_item_click" data-tpatt="1|poi|105127" data-tpid="162">

中央公园

</a>

</div>

select(.item.name)  中间不加空格表示选中class为   item name  中包含的元素

<div class="item" title="中央公园">

  <div class = name>中央公园</div>

</div>

select(.item .name)中间有空格 表示选中为 class为item 下 class为 name的元素

select的用法

 

(1)通过标签名查找
 

 

print soup.select('title') 
#[<title>The Dormouse's story</title>]
 
print soup.select('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>]
 
print soup.select('b')
#[<b>The Dormouse's story</b>]

 

(2)通过类名查找
 

 

print soup.select('.sister')
#[<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>]

 

(3)通过 id 名查找
 

 

print soup.select('#link1')
#[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

 

(4)组合查找

 

组合查找即和写 class 文件时,标签名与类名、id名进行的组合原理是一样的,例如查找 p 标签中,id 等于 link1的内容,二者需要用空格分开
 

 

print soup.select('p #link1')
#[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

 

直接子标签查找
 

 

print soup.select("head > title")
#[<title>The Dormouse's story</title>]

 

(5)属性查找

 

查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。
 

 

print soup.select("head > title")
#[<title>The Dormouse's story</title>]
 
print soup.select('a[href="http://example.com/elsie"]')
#[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

 

同样,属性仍然可以与上述查找方式组合,不在同一节点的空格隔开,同一节点的不加空格
 

 

print soup.select('p a[href="http://example.com/elsie"]')
#[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

 

转载于:https://www.cnblogs.com/missmissmiss/p/7139433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值