Python BeautifulSoup的过滤器
BeautifulSoup提供了多种过滤器用于筛选HTML文档中的节点,下面是一些常用的过滤器及其用法:
- 标签名过滤器
可以通过指定标签名,筛选HTML文档中的节点。例如:
from bs4 import BeautifulSoup html_doc = """ <html> <head> <title>pidancode.com</title> </head> <body> <h1>皮蛋编程</h1> <p class="intro">这是一个Python学习网站。</p> <p class="description">欢迎来到皮蛋编程!</p> </body> </html> """ soup = BeautifulSoup(html_doc, 'html.parser') p_tags = soup.find_all('p') for tag in p_tags: print(tag.text)
输出结果为:
这是一个Python学习网站。 欢迎来到皮蛋编程!
- 属性过滤器
可以通过指定属性名和属性值,筛选HTML文档中的节点。例如:
from bs4 import BeautifulSoup html_doc = """ <html> <head> <title>pidancode.com</title> </head> <body> <h1>皮蛋编程</h1> <p class="intro">这是一个Python学习网站。</p> <p class="description">欢迎来到皮蛋编程!</p> <a href="https://pidancode.com" target="_blank">pidancode.com</a> </body> </html> """ soup = BeautifulSoup(html_doc, 'html.parser') a_tag = soup.find_all('a', href='https://pidancode.com') print(a_tag[0].text)
输出结果为:
pidancode.com
- 文本过滤器
可以通过指定文本内容,筛选HTML文档中的节点。例如:
from bs4 import BeautifulSoup html_doc = """ <html> <head> <title>pidancode.com</title> </head> <body> <h1>皮蛋编程</h1> <p class="intro">这是一个Python学习网站。</p> <p class="description">欢迎来到皮蛋编程!</p> </body> </html> """ soup = BeautifulSoup(html_doc, 'html.parser') p_tag = soup.find_all('p', text='这是一个Python学习网站。') print(p_tag[0].text)
输出结果为:
这是一个Python学习网站。
- CSS选择器过滤器
可以通过CSS选择器语法,筛选HTML文档中的节点。例如:
from bs4 import BeautifulSoup html_doc = """ <html> <head> <title>pidancode.com</title> </head> <body> <h1>皮蛋编程</h1> <p class="intro">这是一个Python学习网站。</p> <p class="description">欢迎来到皮蛋编程!</p> </body> </html> """ soup = BeautifulSoup(html_doc, 'html.parser') p_tag = soup.select('p.intro') print(p_tag[0].text)
输出结果为:
这是一个Python学习网站。
以上是一些常用的过滤器及其用法,更多详细的过滤器用法可以参考官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
相关文章