Как скрести пробел вместе с абзацами - PullRequest
2 голосов
/ 06 января 2020

Как мне добавить интервал?

Сейчас выходные данные кластеризованы. Я хочу очистить интервал вместе с абзацами.

Я видел, как другие люди использовали разделитель get_text , но я им не пользуюсь.

from urllib.request import urlopen
from bs4 import BeautifulSoup

# specify the url
url = "https://www.bbc.com/sport/football/50944416"

# Connect to the website and return the html to the variable ‘page’
try:
    page = urlopen(url)
except:
    print("Error opening the URL")

# parse the html using beautiful soup and store in variable `soup`
soup = BeautifulSoup(page, 'html.parser')

# Take out the <div> of name and get its value
content = soup.find('div', {"class": "story-body sp-story-body gel-body-copy"})

article = ''
for i in content.findAll('p'):
    article = article + ' ' +  i.text
print(article)

Ответы [ 2 ]

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

Вы можете textwrap из стандартной библиотеки, чтобы указать длину каждой строки и добавить две пустые строки в качестве разделителя для каждого абзаца p

from urllib.request import urlopen
from bs4 import BeautifulSoup
import textwrap

article = ''
line_size = 75

for i in content.findAll('p'):
    w = textwrap.TextWrapper(width=line_size,break_long_words=False,replace_whitespace=False)
    body = '\n'.join(w.wrap(i.text))
    article += body+"\n\n"
print(article)

Вы можете сделать это с помощью циклов, но я рекомендовал бы использовать textwrap лучше, так как он обрабатывает разрывные слова, и намного проще, в любом случае базовый c способ сделать это вручную будет выглядеть примерно так:

article = ''
for i in content.findAll('p'):
    text = i.text.strip()
    for n in range(len(text)):
        if n % line_size != 0 and i!=0:
            article += text[n]
        else:
            article += "\n" + text[n]
    article+="\n\n"
print(article)
0 голосов
/ 06 января 2020

string.strip () команда может помочь вам

article = ''
for i in content.findAll('p'):
    article = article + '\t' +  i.text.strip() + '\n'
print(article)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...