Python的BeautifulSoup的find()和findAll()
来源:互联网 发布:电影软件 比价 编辑:程序博客网 时间:2024/05/18 23:56
BeautifulSoup的find()和findAll()这两个函数在某些方面十分的相似,我们可以使用它们过滤HTML页面,并查找需要的标签组和单个的标签。
这两个函数非常的相似:
findAll(tag,attributes,recursive,text,limit,keywords)
find(tag,attributes,recursive,text,keywords)
标签参数tag:可以传递一个标签的名称或多个标签名称组成的Python列表做标签参数。
如:findAll({"tag1","tag2","tag3","tag4"})
属性参数attributes是用一个Python字典封装一个标签的若干属性和对应的属性值。
如:返回HTML文档中attribute1和attribute2属性的tag标签
findAll("tag",{"classs":{"attribute1","attribute2"}})
递归参数recursive是一个布尔变量。如果你想知道所抓取的HTML文档标签结构中有多少层的信息,如果recursive设置为True,findAll就会根据你的要求去查找标签参数的所有子标签以及子标签的子标签。如果recursive设置为False,findAll就只会查找文档的以及标签。findAll默认支持递归查找(recursive的默认值是True),一般情况下不需要设置该参数。只是当你真正了解自己需要哪些信息,而且抓取速度非常重要时,就可以视情况设置递归参数。
文本参数text是使用标签中的文本内容去进行匹配,而不是标签的属性。
如果我们需要查询某个网页中包含"the text"内容的文本数量,我们可以使用以下语句
namelist=bsObj.findAll(text="the text")
print(len(namelist))
范围限制参数limit,只能用于findAll方法。find()方法等价与findAll()方法limit参数等于1时的情形。如果你只对网页中获取的前x项感兴趣,就可以设置它。但是要注意的是这个参数设置之后获取的前几项结果是按照网页上的顺序排序的,也有可能不是你想要的结果。
关键词参数keyword,可以让你选择那些具有指定属性的标签。
如:
alltext=bsObj.findAll(id="text")
print(allText[0].get_text())
.get_text()会把你正在处理的HTML文档中的所有标签都清除,然后只返回一个只包含文字的字符串。如果你正在处理一个包含许多超链接、段落以及标签的大段源代码,那么get_text()会把这些超链接、段落、以及标签全都清除,剩下不带标签的文字。
通常在你准备打印,存储以及操作数据时,应该在最后再使用.get_text()去提取你想要的文本信息,在一般的情况下,应该尽可能的保留HTML文档的标签的结构。
- Python的BeautifulSoup的find()和findAll()
- Python爬虫:BeautifulSoup的find()和findAll()
- python - BeautifulSoup中的find()和findAll()
- BeautifulSoup的高级应用 之 find findAll
- BeautifulSoup的高级应用 之 find findAll
- 使用BeautifulSoup中的find()和findAll()函数时关键字参数的注意事项
- Python的BeautifulSoup之find和find_all
- Python ElementTree的find,findall函数参数
- ③BeautifulSoup中的find()函数和findAll()函数
- BeautifulSoup库之find、findAll和children、descendants
- python re的findall和finditer
- Python findall 和 match 和 search 的区别
- C# Find() 与 FindAll()方法的使用
- Python中的re.search和re.findall之间的区别
- python爬虫(1.find和findAll函数提取文本)
- python BeautifulSoup 的安装和使用
- python的urllib2和beautifulsoup编写爬虫
- python BeautifulSoup的安装
- 如何查找java的关键字及相应作用
- leetcode 454. 4Sum II
- mqsql数据库向表中插入数据是报错(未完全解决)
- C/C++语法知识:typedef struct 用法详解
- setup2go制作安装程序
- Python的BeautifulSoup的find()和findAll()
- Hadoop HDFS原理
- IDEA 运行调试Scala程序,做成jar包放到集群运行
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
- js难理解概念
- jquery数组求和
- Java
- 01_ACS550变频器RS485Modbus通信-通讯连接
- linux 多线程信号总结