如何修复此错误:IndexError:列表索引超出范围

问题描述 投票:0回答:2

我正在抓住flipkart网站。我需要在代码中进行哪些更改,以便消除此错误并打印元素名称?

import requests
from bs4 import BeautifulSoup as soup
r=requests.get("https://www.flipkart.com/search?q=iphone&otracker=search&otracker1=search&marketplace=FLIPKART&as-show=on&as=off")
c=r.content
a=soup(c,"html.parser")
all=a.find_all("div",{"class":"bhgxx2 col-12-12"})
b=len(all)

print(all[1].find_all("div",{"class":"_3wU53n"})[1].get_text)

产量

Traceback (most recent call last):
  File "1.py", line 12, in <module>
    print(all[1].find_all("div",{"class":"_3wU53n"})[1].get_text)
IndexError: list index out of range
python python-3.7
2个回答
1
投票

嗨Praneet欢迎来到Stack Overflow! 我运行你的代码,在我看来,你看到IndexError: list index out of range错误,因为BeautifulSoup实际上无法在HTML中找到与divclass=_3wU53n因此返回一个空列表([])。您可以通过将最后一行更改为: print(all[1].find_all("div",{"class":"_3wU53n"}) 由于列表是空的,显然无法访问其中的任何元素,因为没有。


0
投票

print(all[1].find_all("div",{"class":"_3wU53n"})[1].get_text)只给出一个索引零值,你使用索引1就是它给出错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.