如何用Python BeautifulSoup查找不含itemprop属性的meta元素
用BeautifulSoup查找不含itemprop属性的元素
先看示例HTML结构:
<html> <head> <meta name="description" content="Sample description" itemprop="description"> <meta name="keywords" content="Python, BeautifulSoup"> <meta content="Hello data world"> <meta itemprop="author" content="John Doe"> </head> </html>
要筛选出不含itemprop属性的<meta>元素,有两种简单方法:
方法一:使用CSS选择器的:not()伪类
BeautifulSoup支持CSS选择器,直接用meta:not([itemprop])就能精准匹配不带itemprop属性的meta标签:
from bs4 import BeautifulSoup html = """ <html> <head> <meta name="description" content="Sample description" itemprop="description"> <meta name="keywords" content="Python, BeautifulSoup"> <meta content="Hello data world"> <meta itemprop="author" content="John Doe"> </head> </html> """ soup = BeautifulSoup(html, 'html.parser') # 筛选目标元素 target_metas = soup.select('meta:not([itemprop])') # 查看结果,其中就包含content为"Hello data world"的标签 for meta in target_metas: print(f"Content: {meta.get('content')}")
方法二:遍历筛选
如果偏好手动判断,也可以遍历所有meta元素,通过has_attr()方法排除带itemprop属性的标签:
target_metas = [meta for meta in soup.find_all('meta') if not meta.has_attr('itemprop')]
两种方法都能得到你需要的结果,第一种更简洁,第二种灵活性更强。
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

