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

    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']
    Ответ написан
    5 комментариев