使用BeautifulSoup中的find()和findAll()函数时关键字参数的注意事项
来源:互联网 发布:ubuntu 设置apt源 编辑:程序博客网 时间:2024/05/25 05:38
BeautifulSoup
是Python
里最受欢迎的HTML解析库之一。它可以提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
find()和findAll()
在BeautifulSoup中的定义为:
findAll(tag, attributes, recursive, text, limit, keywords)find(tag, attributes, recursive, text, keywords)
注意事项一
两者看起来定义大部分相似,唯一不同时findAll()
中多了一个参数limit
。
在实际使用中,find()就相当于findAll()中limit = 1
时的特殊情况。
注意事项二
有一个关键字参数keyword
,可以用让我们选择具体的指定属性的标签。如:
from urllib.request import urlopenfrom bs4 import BeautifulSouphtml = urlopen("http://www.pythonscraping.com/pages/page3.html")bsObj = BeautifulSoup(html, "lxml")# 查找出关键字为text的属性标签allText = bsObj.findAll(id = 'text')print(allText[0].get_text())# 下面两行代码是完全一样的Text1 = bsObj.findAll(id = 'text')Text1 = bsObj.findAll("",{'id' : 'text'})
但是我们在使用keyword的时候偶尔会出现问题,尤其是在尤其是在用 class
属性查找标签的时候,因为class
是 Python
中受保护的关键字。也就是说,class
是Python
语言 的保留字,在Python
程序里是不能当作变量或参数名使用的。假如你运行下面的代码,Python
就会因为你误用 class
保留字而产生一个语法错误:
bsObj.findAll(class="green")
BeautifulSoup
提供的解决方法为在class
后面加上下划线:
bsObj.findAll(class_="green")
或者使用属性参数把class
用引号包起来。
bsObj.findAll("",{class:"green"})
阅读全文
0 0
- 使用BeautifulSoup中的find()和findAll()函数时关键字参数的注意事项
- ③BeautifulSoup中的find()函数和findAll()函数
- python - BeautifulSoup中的find()和findAll()
- Python的BeautifulSoup的find()和findAll()
- Python爬虫:BeautifulSoup的find()和findAll()
- Python ElementTree的find,findall函数参数
- BeautifulSoup的高级应用 之 find findAll
- BeautifulSoup的高级应用 之 find findAll
- BeautifulSoup库之find、findAll和children、descendants
- C# Find() 与 FindAll()方法的使用
- fleaphp常用函数findAll方法的使用和示例
- Yii中的findAll , findByAttributes和deleteAllByAttributes等方法的使用
- bs.find()和bs.findAll()的区别,print()函数的格式化
- python爬虫(1.find和findAll函数提取文本)
- python里使用正则的findall函数
- Python的BeautifulSoup之find和find_all
- python网络爬虫使用BeautifulSoup时出现findAll执行失败问题分析
- static关键字的使用和注意事项
- Android5.0之NavigationView的使用
- Redis探索之旅(5)- 在Linux下将Redis注册成服务
- HTTP协议详解(真的很经典)
- POJ3624 0-1 背包问题
- leetcode 258. Add Digits
- 使用BeautifulSoup中的find()和findAll()函数时关键字参数的注意事项
- C语言文件操作相关函数
- BZOJ4726: [POI2017]Sabota?
- Get Selected Row Values From Kendo Grid On Change Event
- Neo4j数据建模优化:双向关系
- makefile多规则目标
- Java中使用org.json和json-lib解析JSON
- mac命令
- PKI体系