@mironi

Как спарсить строки на Python?

Доброго времени!
Подскажите как спарсить нужные текст из строк?
Помогите новичку, голову сломал!
Дано:
604850325d4b7559461384.png

<tr>
<td>
<br/><br/>
<i class="icon icon-user" data-selector=".icon" title="Автор"></i>   Барышева Олеся<br/>
<i class="icon icon-support" data-selector=".icon" title="E-mail"></i>   olesya052019@bk.ru<br/>
<i class="icon icon-phone" data-selector=".icon" title="Телефон"></i>   89188565504<br/>
</td>
</tr>


требуется спарсить строки 1,2,3
Заранее Спасибо!
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
datka
@datka
soup = BeautifulSoup(html)
author_text = soup.find('i',{'class':'icon icon-user'})
email_text = soup.find('i',{'class':'icon icon-support'})
phone_text = soup.find('i',{'class':'icon icon-phone'})

print(author_text.next)
print(email_text.next)
print(phone_text.next)

Вывод:
Пыльнев  Анатолий
tollik36@mail.ru
89055663563


Старый Ответ
from bs4 import BeautifulSoup
html="""
<tr>
<td>
<br/><br/>
<i class="icon icon-user" data-selector=".icon" title="Автор"></i>   Барышева Олеся<br/>
<i class="icon icon-support" data-selector=".icon" title="E-mail"></i>   olesya052019@bk.ru<br/>
<i class="icon icon-phone" data-selector=".icon" title="Телефон"></i>   89188565504<br/>
</td>
</tr>
"""
soup = BeautifulSoup(html)
my_text = soup.find('td')
print(my_text.get_text().split())

Вывод.
['Барышева', 'Олеся', 'olesya052019@bk.ru', '89188565504']

Либо без .split(), смотря как вы хотите получать/хранить данные.
Барышева Олеся
olesya052019@bk.ru
89188565504


UPD: Если у вас будет больше одного человека в коде можно сделать так.
from bs4 import BeautifulSoup

html="""
<tr>
<td>
<br/><br/>
<i class="icon icon-user" data-selector=".icon" title="Автор"></i>   Барышева Олеся<br/>
<i class="icon icon-support" data-selector=".icon" title="E-mail"></i>   olesya052019@bk.ru<br/>
<i class="icon icon-phone" data-selector=".icon" title="Телефон"></i>   89188565504<br/>
</td>
</tr>

<tr>
<td>
<br/><br/>
<i class="icon icon-user" data-selector=".icon" title="Автор"></i>   Иван Иванович<br/>
<i class="icon icon-support" data-selector=".icon" title="E-mail"></i>   obi_van_ia9@bk.ru<br/>
<i class="icon icon-phone" data-selector=".icon" title="Телефон"></i>   232321113312<br/>
</td>
</tr>

<tr>
<td>
<br/><br/>
<i class="icon icon-user" data-selector=".icon" title="Автор"></i>   Темный лорд<br/>
<i class="icon icon-support" data-selector=".icon" title="E-mail"></i>   pirojok51@mail.ru<br/>
<i class="icon icon-phone" data-selector=".icon" title="Телефон"></i>   80002111122<br/>
</td>
</tr>
"""

soup = BeautifulSoup(html)
my_text = soup.findAll('td')
for text in my_text:
    print(text.get_text().split())


Вывод будет таков

['Барышева', 'Олеся', 'olesya052019@bk.ru', '89188565504']
['Иван', 'Иванович', 'obi_van_ia9@bk.ru', '232321113312']
['Темный', 'лорд', 'pirojok51@mail.ru', '80002111122']
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы