python 如何使用find和find_all爬虫、找文本的实现


Posted in Python onOctober 16, 2020

这篇文章我们来讲讲如何在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的值。

如果下图

python 如何使用find和find_all爬虫、找文本的实现

从上到下找是不是我标出来蓝色区域是我要找的类,对的我们把他赋值给one,我们把他打印出来

print('one')

这时候系统就会返回这样一个值给我们,如下图

python 如何使用find和find_all爬虫、找文本的实现

大家看,他返回的是从 class='one'开始到这个类标签ul结束,对的,他不会返回其他值,他只会返回这个类的标签开始到结束。

所以当bs4返回值时,第一步使用find找打包含自己要找的所有值中第一个父类,再赋值给函数,这样这个函数就是我们进行下一步查找的对象。

接下俩我们就还可以使用find(找到)或者find_all(找到全部一样的),来定位函数位置,像图中:

python 如何使用find和find_all爬虫、找文本的实现

class="navbar-branding"就只有一个,我们像打印出 开发者的网上家园 怎么写

这时候我们假设,上面bs.find(class_='one')赋值给one函数那么我们就从one开始查找
one.find(class="navbar-branding")这样查找出来的内哦让那个就会返回给我们这个区域内容

python 如何使用find和find_all爬虫、找文本的实现

然后这个区域的文字再title值里面,我们就没办法直接用 .text 取值了,所以我们要接着查找

one.find(class="navbar-branding")赋值给 one_1

然后用 one_1.find('a')来查找到a标签

后面加一个中括号取值[‘title']这样打印出来内容就是“开发者的网上家园”了。

连起来就是这样写

print(one_1.find('a') ['title'])

下面我们把代码连起来打一遍看图

python 如何使用find和find_all爬虫、找文本的实现

看代码

one=bs.find(class_='one')
		one_1=one.find(class="navbar-branding")
	print(one_1.find('a') ['title'])

>>开发者的网上家园
#这就是最后返回的值

就这么简单。

三、 find_all在bs4模块返回值中怎么使用

还是用上图举例

python 如何使用find和find_all爬虫、找文本的实现

我们可以看到如果我要取下面的 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遍历就能取出

到此这篇关于python 如何使用find和find_all爬虫、找文本的实现的文章就介绍到这了,更多相关python find和find_all爬虫 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中的is和id用法分析
Jan 26 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
Python实现的数据结构与算法之链表详解
Apr 22 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
Python字典dict常用方法函数实例
Nov 09 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
Django实现随机图形验证码的示例
Oct 15 #Python
如何使用Python自动生成报表并以邮件发送
Oct 15 #Python
如何在Win10系统使用Python3连接Hive
Oct 15 #Python
Python进行特征提取的示例代码
Oct 15 #Python
Python通过递归函数输出嵌套列表元素
Oct 15 #Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 #Python
Python return语句如何实现结果返回调用
Oct 15 #Python
You might like
PHP面向对象分析设计的经验原则
2008/09/20 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
实例介绍Python中整型
2019/02/11 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
JAVA中的关键字有什么特点
2014/03/07 面试题
机械电子工程专业推荐信范文
2013/11/20 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
网吧收银员岗位职责
2013/12/14 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
办公室岗位职责
2015/02/04 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书