Python Красивый суп получить часть текста после <br> - PullRequest
1 голос
/ 18 января 2020

Я использую Beautiful Soup для удаления, и у меня есть такие теги:

a =

<a class="list-group-item" href="URL Link">
    <span class="btn btn-blue "><span class="spanClass"></span></span>
    <strong>Store Name</strong>
    <br>Store Address Here      </a>

Мне просто нужен текст после <br> ... который Адрес магазина здесь , игнорируя имя магазина

Я пытался a.text, но он дал мне \n\nStore Name\nStore Address Here\t\t\t\t

Я пытался a.text.replace("\n",""), но он дал я Store NameStore Address Here\t\t\t\t

Я пытался a.find(text=True, recursive=False), но это дало мне \n

Может ли кто-нибудь помочь мне просто получить текст после <br>? ТИА

Ответы [ 2 ]

1 голос
/ 18 января 2020

Вы можете попробовать:

address = a.text.split('\n')[-1].strip()

Это разделит текст на список строк, разделяя его в каждом \ n. Затем [-1] говорит ему взять последнюю строку в этом списке. Наконец, strip () удалит начальные и конечные пробелы, которые будут включать \ t (табуляции) и \ n (новые строки).

Шаг за шагом (вы можете подтвердить это, печатая строку на каждом шаге) :

  1. Начать с a.text -> '\n\nStore Name\nStore Address Here\t\t\t\t'
  2. a.text.split('\n') -> ['', 'Store Name', 'Store Address Here\t\t\t\t']
  3. a.text.split('\n')[-1] -> 'Store Address Here\t\t\t\t'
  4. a.text.split('\n')[-1].strip() -> 'Store Address Here'
0 голосов
/ 19 января 2020

Вы можете попробовать вот так:

from bs4 import BeautifulSoup

html = """
<a class="list-group-item" href="URL Link">
    <span class="btn btn-blue "><span class="spanClass"></span></span>
    <strong>Store Name</strong>
    <br>Store Address Here      </a>
"""
soup = BeautifulSoup(html,'html.parser')    
for x in soup.find_all('br'):
  print(x.next_sibling)

результат:

Store Address Here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...