这篇文章我们来讲讲如何在python使用bs4模块返回值中正确使用find和find_all来取值。
我们先来看看find函数在两种场景使用: 一、 find在字符串(str)时可以查找使用。
在字符串(str)是怎么来使用find函数,find函数就是找到的意思。
我们来看看下面案例
#---------案例1----------- a='0123456789'#因为我们电脑中的字节都是从0开始算第一个位置 b=a.find('0')#这行代码的意思就是我要查找a中0的位置 print(b)
0
#这里就是打印出来的内容
应为0在a中的第0个位置
在来试试第二个案例
#---------案例2----------- a='0123456789' b=a.find('5')#我要查找a中5的位置 print(b)
5
其中你要查找的内容不在a中,则会返回 -1 。在str中的使用方法说到这里。
二、 find在bs4模块返回值中怎么使用
我们在课堂上学过,bs4返回的值是 <class 'bs4.BeautifulSoup'>
假设我把把bs4返回的值赋值给 bs
这时我们就要用 bs.find(class_=‘one')
这个代码就是在bs值中从上往下找,找到第一个类等于one的值。
如果下图
从上到下找是不是我标出来蓝色区域是我要找的类,对的我们把他赋值给one,我们把他打印出来
print('one')
这时候系统就会返回这样一个值给我们,如下图
大家看,他返回的是从 class='one
'开始到这个类标签ul结束,对的,他不会返回其他值,他只会返回这个类的标签开始到结束。
所以当bs4返回值时,第一步使用find找打包含自己要找的所有值中第一个父类,再赋值给函数,这样这个函数就是我们进行下一步查找的对象。
接下俩我们就还可以使用find
(找到)或者find_all(
找到全部一样的),来定位函数位置,像图中:
class="navbar-branding
"就只有一个,我们像打印出 开发者的网上家园 怎么写
这时候我们假设,上面bs.find(class_='one')
赋值给one函数那么我们就从one开始查找
one.find(class="navbar-branding")
这样查找出来的内哦让那个就会返回给我们这个区域内容
然后这个区域的文字再title值里面,我们就没办法直接用 .text 取值了,所以我们要接着查找
将one.find(class="navbar-branding")
赋值给 one_1
然后用 one_1.find('a')
来查找到a标签
后面加一个中括号取值[‘title']这样打印出来内容就是“开发者的网上家园”了。
连起来就是这样写
print(one_1.find('a') ['title'])
下面我们把代码连起来打一遍看图
看代码
one=bs.find(class_='one') one_1=one.find(class="navbar-branding") print(one_1.find('a') ['title']) 开发者的网上家园 #这就是最后返回的值
就这么简单。
三、 find_all在bs4模块返回值中怎么使用
还是用上图举例
我们可以看到如果我要取下面的 li 标签中的值怎么办
这时候我们就得用到find_al了(查找全部一样的)
先补充代码到这个li标签的父类
one=bs.find(class_='one') one_1=one.find(class="navbar-branding")
然后我们用one_1来取值如下代码
one_1.find_all('li')#这时候我们取值了再one_1区域中所有有li便签的内容
他会返回给我们一个列表
列表时这样的
<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>,<li>…</li>
每一个区域就是一个内容,中间的。。。我时为了图省事,其实都是内容。
竟然得到这样的一个列表我们就可以使用for I in one_1.find_all('li')
这样取遍历出这个列表的东西,然后取值,
或者我只要其中一个就是ne_1.find_all('li')[2]
后面加一个数字,
列表取值大家应该都会把,这样就可以定位到我们想要的东西了。
总结一下find就是查找某一项的第一个数据,find_all就是找所有数据,然后用for遍历就能取出
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】
- 谭咏麟.2022-倾·听【环球】【WAV+CUE】
- 4complete《丛生》[320K/MP3][85.26MB]