2016-12-07 3 views
0

Я столкнулся с ошибкой BS4, которая не дает никаких объяснений, по крайней мере, я не понимаю, может кто-нибудь помочь мне узнать, что это значит? вот код:Красивая суп простая ошибка python с поиском элементов внутри элементов?

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 

, если вы заметили # из кода он дает точно такую ​​же ошибку

ответ

1

containerlv2 является объектом тега, и он не имеет 6 в качестве ключа, поэтому вы получили KeyError: 6

Если вы пытаетесь искать div тега в 7-м tr тега, правильный путь должен быть:

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

Сначала вы используете find_all, чтобы получить все tr теги container и поместить их в список containerlv2, а затем искать div в 7-теге containerlv2

0
containerlv2 = container.find('tr') 

это будет возвращать объекта тега, и вы индексируете объект тега, как этот

containerlv2[6]