首页 > 解决方案 > “索引”不可调用

问题描述

while (x < go):


url = "https://www.shoppingwesbite.com/search?=product" + input_a
headers = {'User-Agent': 'my user agent here'}
ok = get(url, headers=headers)
data = BeautifulSoup(ok.content, 'html.parser')

price = data.find_all('div', {"class" : "css-rey619"})[x].get_text()
title = data.find_all('div', {"class" : "css-398hol"})[x].get_text()
reviews = data.find_all('span', {'class':'css-402phy'})[x].get_text()

我已经从我的网络爬虫中包含了这段代码,它基本上只是在购物网站上为用户输入的产品提取前 10 个结果。现在,大多数时候它都可以工作,但有时它会返回错误,指出索引不可调用“reviews”变量,因为我认为它正在尝试为还没有评论的产品拉评论。我不知道如何解决这个问题,如果我能尝试任何建议/想法,我将不胜感激。我正在考虑制作一些逻辑语句来检查列表是否有评论,如果有,则输出它,但我不知道如何实现这一点。谢谢!

标签: pythonweb-scrapingindexing

解决方案


您可以检查评论的长度,如果为零,您将获得空评论。

for i in range(len(reviews)):
    if len(reviews[i]) == 0:
         print("you got empty review now you can easily remove it")

推荐阅读