gpt4 book ai didi

python-3.x - 如何使用 beautifulsoup 查找没有特定属性的标签?

转载 作者:行者123 更新时间:2023-12-03 03:27:33 25 4
gpt4 key购买 nike

我正在尝试获取没有特定属性的“p”标签的内容。

我有一些带有“class”=“cost”的标签,还有一些带有“class”=“cost”和“itemprop”=“price”的标签

all_cars = soup.find_all('div', attrs={'class': 'listdata'})
...
...
tatal_cost= car.findChildren('p', attrs={'class': 'cost'})
cost= car.findChildren('p', attrs={'class': 'cost', 'itemprop':'price'})

我正在尝试查找没有“itemprop”属性的“p”标签,但找不到任何解决方案。

最佳答案

BeautifulSoup 的内置属性过滤器足以满足此目的。您可以将 True 作为值来简单检查该属性是否存在。 None 可用于指定不应出现该属性。同样,该值可以是任何属性值(例如“成本”)。

from bs4 import BeautifulSoup
html="""
<p class="cost">paragraph 1</p>
<p class="cost">paragraph 2</p>
<p class="cost">paragraph 3</p>
<p class="cost" itemprop="1">paragraph 4</p>
<p class="somethingelse">paragraph 5</p>
"""
soup=BeautifulSoup(html,'html.parser')
print("---without 'itemprop' attribute")
print(soup.find_all('p',itemprop=None))
print("---with class = 'cost' and without 'itemprop' attribute----")
print(soup.find_all('p',attrs={'itemprop':None,"class":'cost'}))
#below is an alternative way to specify this
#print(soup.find_all('p',itemprop=None,class_='cost'))

输出

---without 'itemprop' attribute
[<p class="cost">paragraph 1</p>, <p class="cost">paragraph 2</p>, <p class="cost">paragraph 3</p>, <p class="somethingelse">paragraph 5</p>]
---with class = 'cost' and without 'itemprop' attribute----
[<p class="cost">paragraph 1</p>, <p class="cost">paragraph 2</p>, <p class="cost">paragraph 3</p>]

关于python-3.x - 如何使用 beautifulsoup 查找没有特定属性的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com