Python 如果有其他没有标签的框,如何抓取某些标签

Python 如果有其他没有标签的框,如何抓取某些标签,python,web-crawler,Python,Web Crawler,不知道当某些框有标记,而其他框没有标记时,如何在某些标记之间收集值。(例如,文本有“a”标记,但没有) 我尝试了“try-except”代码,它成功了。 但是当我抓取一些页面时,它包含了太多不同的标记,所以我不得不使用其他代码。这意味着,就购物中心而言,一些产品有“评论数量”,而另一些则没有。还有“送货费”、“折扣率”。 所以我尝试了count(),但它不支持word。我感谢你的帮助 def get_info(item): info = item.find("div",{"class":

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

我尝试了“try-except”代码,它成功了。 但是当我抓取一些页面时,它包含了太多不同的标记,所以我不得不使用其他代码。这意味着,就购物中心而言,一些产品有“评论数量”,而另一些则没有。还有“送货费”、“折扣率”。 所以我尝试了count(),但它不支持word。我感谢你的帮助

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
编辑:


您缺少相等运算符

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
编辑:


如果num_reviews.count()=0:^SyntaxError:无效的syntaxif num_reviews.count()==0:^“NoneType”对象没有属性“find”,那么在这种情况下,如果num_reviews.count(),是否可以发布错误回溯=0:^SyntaxError:无效的syntaxif num\u reviews.count()==0:^'NoneType'对象没有属性'find'抱歉,如果num\u reviews.count()==0:NoneType'对象没有属性'find',因为对象没有计数()函数然后你知道如果有2个以上的标签要检查(存在或不存在),我该如何处理它吗?@Jaguar Black你能给出一个例子新的答案吗?还可以返回'NoneType'对象没有属性'find'抱歉,如果num_reviews.count()==0:NoneType'对象没有属性'find',因为对象没有计数()功能如果有2个以上的标签需要检查(存在或不存在),您是否知道我该如何处理它?@Jaguar Black您能给出一个示例新的答案也返回“NoneType”对象没有属性“find”