Как извлечь часть описания с сайта с правильным интервалом? - PullRequest
1 голос
/ 11 июля 2020

Я зашел на веб-сайт с красивым супом и получил часть описания (класс div), но так как она была в маркированных точках. Я получаю такой результат без промежутков между точками (Неразборчиво):

ОПИСАНИЕ: Прогнозы COVID-19 Социальное дистанцирование по требованию правительства 1006 * На самом деле у меня есть как обычные абзацы, так и маркеры, поэтому я не могу использовать li или ul только для получения маркеров.

Это моя программа для этой части описания :

def DESCRIPTION(self):
    
    print('\n'+"DESCRIPTION: ")
    for j in Data_Set_Info.soup.select('.iH9v7b'):
        k = j.get_text()
        print ('\n'+k)

Код HTML для этой веб-страницы:

<div class="iH9v7b"><p>COVID-19 Projections</p><ul><li>Government-mandated social distancing</li><li>Hospital resource use</li><ul><li>All beds</li><li>ICU beds</li><li>Invasive ventilators</li></ul><li>Deaths per day</li><li>Total deaths</li></ul><p></p></div>

Веб-страница: https://datasetsearch.research.google.com/search?query=health&docid=B2%2BtssYi2L2wvQwVAAAAAA%3D%3D

На этом веб-сайте есть разные наборы данных и каждый набор данных имеет разное описание. Мне нужно получить все описание в правильном интервале с помощью одной программы. Заранее спасибо

1 Ответ

0 голосов
/ 11 июля 2020

Если вы просто хотите получить весь текст с пробелами между ними, вы можете указать символ, используемый для соединения текста из разных элементов, в качестве аргумента для get_text, например:

k = j.get_text(' ')

Если если вы хотите иметь возможность сохранять (потенциально вложенные) списки в выводе, тогда вам нужно будет рекурсивно искать по j.contents. Универсальное решение вряд ли подойдет для этой цели и, вероятно, потребует небольших экспериментов.

Ссылки на документацию:

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