Я пытаюсь разобрать локальный файл html
с помощью BeautifulSoup, но проблема с навигацией по дереву.Анализ HTML-файла BeautifulSoup
Файл находится в следующем формате:
<div class="contents">
<h1>
USERNAME
</h1>
<div>
<div class="thread">
N1, N2
<div class="message">
<div class="message_header">
<span class="user">
USERNAME
</span>
<span class="meta">
Thursday, 1 January 2015 at 19:52 UTC
</span>
</div>
</div>
<p>
They're just friends
</p>
<div class="message">
<div class="message_header">
<span class="user">
USERNAME
</span>
<span class="meta">
Thursday, 1 January 2015 at 19:52 UTC
</span>
</div>
</div>
<p>
MESSAGE
</p>
...
Я хочу, чтобы извлечь для каждого потока:
для каждого div
class='message'
:
- в
span
class='user'
и мета-данных - сообщение в
p
напрямую после
Это длинный файл со многими из этих потоков и много сообщений в каждом потоке.
До сих пор я только что открыл файл и превратили его в суп
raw_data = open('file.html', 'r')
soup = BeautifulSoup(raw_data)
contents = soup.find('div', {'class' : 'contents'})
Я смотрю на хранение этих данных в словаре в формате
dict[USERNAME] = ([(MESSAGE1, time1), [MESSAGE2, time2])
Хорошо, как вы пытались преобразовать суп в словарь? – hd1
вставьте большую часть html с близкими divs (правильный DOM) – CodeNinja