使用BeautifulSoup的find_all和find
功能对节点进行搜索
- 使用
find_all和find
进行搜索时,可以传入目标节点的多个参数值(目标节点的名字、属性和文字内容)对节点进行精确搜索,如下:
其中,当目标节点有多个属性时,比如:
那么,在使用find_all和find
时,属性值前要加href=或class_
来区分是谁的属性值,如:
a_node = soup.find('a',class_='article_link',string='Python')
print a_node.name, a_node.get_text()
- 使用
find_all和find
时,括号内的名字、属性和文字,都可以加入正则表达式来进行模糊匹配搜索。
举例,href的属性值加入正则表达式,表达式内容为“ill”,那么,find就能搜索到带“ill”字符的那个节点,如下:
注意:
1.使用re.compile()
正则表达式,文件前面要加入import re
模块。
2.“ill”前面加了r,目的是为了防止反斜线\转义。