gpt4 book ai didi

python - 如何修复 "List Index Our of Range"错误

转载 作者:行者123 更新时间:2023-12-01 07:47:37 25 4
gpt4 key购买 nike

我正在抓取网页,并将输出写入 .csv。我收到“列表索引超出范围”错误。我想我明白该错误的含义,但我不确定如何修复它。

包含我想要迭代的容器的 HTML 代码如下所示:

<tr class="featured even" role="row"><td class="sorting_1 dcLogo">
<a href="company/company">
<img src="URL" alt="Company Name" width="50">
</a>
</td><td class="dcCompanyName"><a href="URL">Company Name</a></td><td class="dcBoothLabel">9999</td><td class="dcCategories">Widget 1, Widget 2, Widget 3</td><td class="dcCityState">CITY, STATE<br/></td><td class="dcCountry">US</td><td style="visibility:hidden;display:none;">4</td></tr>

我的代码如下所示:


page_soup = soup(page_html, "html.parser")

containers = page_soup.findAll('tr')
del containers[8]

company_names = []
booth_numbers = []
categories = []
countries = []

print("generating csv")
with open('CompanyList.csv','w') as f:
csv_out = csv.writer(f)
csv_out.writerow(["company_name", "booth_number", "category", "country"])
for container in containers:
cols = container.findAll("td")
company_name = cols[1].find("a").text
booth_number = cols[2].text
category = cols[3].text.strip()
country = cols[5].text

company_names.append(company_name)
booth_numbers.append(booth_number)
categories.append(category)
countries.append(country)

csv_out.writerow([company_name, booth_number, category, country])

f.close
print('Done Writing to File')

当我运行此命令时,我收到一个“IndexError:列表索引超出范围”错误,指向:

booth_number = cols[3].text

任何帮助将不胜感激。

最佳答案

问题是 cols 数组的长度小于您尝试访问的元素。在示例中

booth_number = cols[3].text

cols 数组的长度为 3 或更小,因为数组索引是从零开始的(元素 1 的索引为 0)。当您尝试访问索引为 3 的第四个元素时,您正在访问范围之外的元素。

您可以通过在访问元素之前检查长度来解决此问题。

if len(cols) > 3:
booth_number = cols[3].text

这样,如果展位号不在列中,您的程序就不会失败并停止。

关于python - 如何修复 "List Index Our of Range"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56381285/

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