我正在学习 BS4,但我不明白这段代码的作用以及为什么这段代码会抛出这样的错误:
Traceback (most recent call last):
File "/home/ubuntu/workspace/Untitled1.py", line 17, in <module>
for tr in soup.find_all('tr')[3]:
IndexError: list index out of range
使用bs4的python代码是:
for tr in soup.find_all('tr')[2]:
tds = tr.find_all('td')
print("value:%s,value 2:%s,value3:%s" \
(tds[0].text,tds[1].text,tds[2].text))
非常感谢您阅读这篇文章。
最佳答案
BeautifulSoup 基本上是一个 Python 库,可以帮助您从 HTML 和 XML 文件中提取数据,您所要做的就是应用一些规则来从网页 HTML 文件中提取数据。
for tr in soup.find_all('tr')[2]:
tds = tr.find_all('td')
print("value:%s,value 2:%s,value3:%s" \
(tds[0].text,tds[1].text,tds[2].text))
上面的这段代码只是应用了一些规则,例如对于 soup 变量内的每个 'tr' 迭代变量,找到所有 'tr' 标签元素的索引值为 2,然后在 for 循环内部创建了一个 tds 变量,用于存储每个 'tr' 的返回值 通过查找每个 'tr' 迭代变量内的所有 'td' 标签元素来迭代变量。 然后代码尝试将 3 个字符串值打印为 value、value2、value3,其中代码尝试显示索引 0、1 和 2 的 tds 变量的文本 值。
但不幸的是,此代码在第 17 行抛出 IndexError :for tr in soup.find_all('tr')[2]
。
对于您的信息,您尝试获取的索引值不在您尝试获取 'tr' 标签元素的 soup 变量内部。
因此,它要求您尝试 soup 变量 'tr' 标签元素中存在的其他索引值。
这就是为什么错误提示列表索引超出范围。
关于python - BeautifulSoup4索引错误: list index out of range?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557902/