python 爬虫之select用法

在python爬取数据时,通过requests和BeautifulSoup把网页内容解析下来是第一步,这一步通常很简单,数据爬取的重头戏主要集中在所需内容的精准定位上,定位元素的方式有多种,今天主要讲一下select的用法。

需要注意一点,select用法会将所有满足条件的值取出,组成一个list

select定位元素有5种方式:

一、通过标签名查找

用法:soup.select(标签名)      例子:soup.select(h1)

我们以自如一个租房页面举例,如下图,假如现在要获取logo所在位置的代码,查看html可知,对应的标签名为h1

from bs4 import BeautifulSoup
import requests

url='http://gz.ziroom.com/z/vr/61669497.html'
urlhtml=requests.get(url)
urlhtml.encoding='utf-8'
soup=BeautifulSoup(urlhtml.text,'lxml')
alink = soup.select('h1') 

print(type(alink))
print('------------------**----------------------')
print(alink)

 

二、通过类名查找

用法:soup.select(.类名)

同样用上面的例子,logo所在位置的类名就是logo,因此直接用soup.select('.logo')即可 

alink = soup.select('.logo')
print(type(alink))
print('------------------**----------------------')
print(alink)

 三、通过 id 名查找

用法:soup.select(#id名)

定位到元素的id=‘logoSvg’,则可以用soup.select('#logoSvg')定位

alink = soup.select('#logoSvg')
print(alink)

四、组合查找

有时单独用标签名、类名或id名很难定位元素,这时可以根据需要选择其中的多种方式组合在一起进行定位,不同方式之间用空格分开

#通过标签和class组合查找
alink = soup.select('div .user_center')
print(alink)

#通过标签和ID组合查找
alink = soup.select('div #cao')
print(alink)

五、属性查找

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

alink = soup.select('a[target="_blank"]')
print(alink)

最后的最后,select用法很灵活,一定不要拘泥于规则,大胆组合使用

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值