美丽的汤简单的python错误与元素内的元素?

时间:2016-12-07 01:07:57

标签: python-3.x beautifulsoup runtime-error

我遇到了一个没有解释的BS4错误,至少没有我理解的错误,有人可以帮助我知道这意味着什么吗? 这是代码:

    soup = BeautifulSoup(browser.page_source, "html.parser")
    soup.prettify()
    container = soup.find('table', {'id': 'RmvMainTable'})
    containerlv2 = container.find('tr')
    # related_files = containerlv2[6].find('div')
    # print(related_files)
    for re_file in containerlv2[6].find('div'):
        print("lol")

这是错误:

Traceback (most recent call last):
 File "/home/user/Python projects/test/test3.py", line 162, in <module>
  for re_file in containerlv2[6].find('div'):
 File "/usr/lib/python3/dist-packages/bs4/element.py", line 958, in __getitem__
  return self.attrs[key]
 KeyError: 6

如果您注意到#out代码,则会给出完全相同的错误

2 个答案:

答案 0 :(得分:1)

containerlv2是一个标记对象,它没有6作为键,因此你得到KeyError: 6

如果您要尝试在第7个div标记中搜索tr代码,请使用正确的方法:

containerlv2 = container.find_all('tr')
related_files = containerlv2[6].find('div')

首先,您使用find_all获取tr中的所有container个标记,并将其放入列表containerlv2,然后在其中搜索div containerlv2

的第7个标记

答案 1 :(得分:0)

containerlv2 = container.find('tr')

这将返回一个标记对象,并像这样

索引一个标记对象
containerlv2[6]