gpt4 book ai didi

python - 如果有其他盒子没有标签,如何抓取某些标签

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:03 25 4
gpt4 key购买 nike

不知道当某些框具有某些标签但其他框没有时如何收集某些标签之间的值。 (例如,文本有“a”标签,但没有)

我尝试了“try- except”代码并且它有效。但是当我抓取一些页面时,它包含很多不同的标签,所以我必须使用其他代码。这意味着,在购物中心,某些产品有“评论数量”,但另一些则没有。要么是“运费”,要么是“折扣率”。所以我尝试了 count() 但它没有字。感谢您的帮助。

def get_info(item):
info = item.find("div",{"class":"info"})
price = info.find("span",{"class":"price"})
num_review = info.find("a",{"class":"review"})
delivery_fee = info.find("a",{"class":"fee"})

if num_review.count() = 0 :
result = {"price":price.text,
"review":"-",
"fee":delivery_fee.text}
return result

elif delivery_fee.count() = 0 :
result = {"price":price.text,
"review":"-",
"fee":"-"}
return result

else :
result = {"price":price.text,
"review":review.text,
"fee":delivery_fee.text}
return result

最佳答案

您缺少等于运算符

if len(num_review) == 0 :
result = {"price":price.text,
"review":"-",
"fee":delivery_fee.text}
return result

验证标签

if isinstance(num_review,Tag) and num_review in 'a':
print("do something")

添加脚本顶部:

from bs4.element import Tag

编辑:

def get_info(item):
info = item.find("div",{"class":"info"})

result = {'price':"",'review':"",'fee':""}
for tag in info.findChildren():
_class = tag.get('class')

if _class in 'price':
result['price'] = tag.text

elif _class in 'review':
result['review'] = tag.text

elif _class in 'fee':
result['fee'] = tag.text

return result

关于python - 如果有其他盒子没有标签,如何抓取某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128866/

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