Как извлечь текст между Text </a> +, а затем упорядочить текст в столбце - PullRequest
0 голосов
/ 08 февраля 2020

Мне нужна помощь для удаления html кодов < a > и < /a > элементов, и оставлен только текст между (отмечен на рисунке желтым цветом.

Текст должен быть указан в таблице в столбце с заголовком «Описание».

Результат из кода Фитона

Код, который я использую для получения результата:

soup = BeautifulSoup( html, 'html.parser' )
ul = soup.select("h2 > a" )

Любые идеи

1 Ответ

0 голосов
/ 08 февраля 2020

См. Это для извлечения текста между тегами BeautifulSoup

или попробуйте этот

soup.p.next_sibling.strip()
  1. вы получаете

    непосредственно с soup.p * (это зависит от того, является ли он первым

    в дереве разбора)

  2. , затем используйте next_sibling для объекта тега, который возвращается soup.p, так как нужный текст вложен на том же уровне синтаксический анализ дерева как

  3. .strip() это просто метод Python str для удаления начальных и конечных пробелов

в интерпретаторе, это выглядит примерно так:

In [4]: soup.p
Out[4]: <p>tag contains</p>

In [5]: type(soup.p)
Out[5]: bs4.element.Tag

In [6]: soup.p.next_sibling
Out[6]: u'\n      Text inside in your tag \n      '

In [7]: type(soup.p.next_sibling)
Out[7]: bs4.element.NavigableString

In [8]: soup.p.next_sibling.strip()
Out[8]: u'Text inside in your tag'

In [9]: type(soup.p.next_sibling.strip())
Out[9]: unicode
...