#python #python_3x #парсер #beautiful_soup #bs4
Помогите пожалуйста разобраться, пытаюсь обработать выгрузку информации о Сisco телефоне в формате HTML. Необходимые данные лежат в table[2]Cisco Systems, Inc.
Device information Cisco IP Phone |
|||||||||||||
|
|
Ответы
Ответ 1
Попробуйте так: from bs4 import BeautifulSoup # ... table = root.select_one('table:nth-of-type(3)') # Или так: table = soup.select('table')[2] name_by_value = dict() for tr in table.select('tr'): tds = tr.select('td') name, value = tds[0].text.strip(), tds[2].text.strip() name_by_value[name] = value print(name_by_value) # {'Service mode': 'Enterprise', 'Service domain': '', 'App load ID': 'rootfs8845_65.12-1-1-12'} PS. Заметил, что нужные значения ячеек находятся исключительно в , а значит можно немного конкретизировать поиск: ... for tr in table.select('tr'): tds = [x.text.strip() for x in tr.select('td > b')] name, value = tds[0], tds[1] name_by_value[name] = value ... А если элементов всегда ожидается два, то воспользоваться распаковкой: ... for tr in table.select('tr'): name, value = [x.text.strip() for x in tr.select('td > b')] name_by_value[name] = value ...
Комментариев нет:
Отправить комментарий