После очистки текстов с разных веб-сайтов, я хочу нормализовать этот текст, чтобы проанализировать его. Один из шагов, который я хочу сделать, - это заменить несколько пробелов одним пробелом.
Я знаю, что этот topi c часто упоминается в Stack Overflow. Однако использование обычных способов, таких как:
string = ' '.join(string.split())
или
string = re.sub(' +', ' ', string)
, похоже, не дает ожидаемых результатов для каждой веб-страницы. Ниже приведен фрагмент кода, который я использую, и пример регистрации SE C, для которой мне не удается не иметь нескольких пробелов.
import re
from selenium import webdriver
link = r"https://www.sec.gov/Archives/edgar/data/1800/000104746919001316/a2237648zdef14a.htm"
driver = webdriver.Chrome('./chromedriver')
driver.get(link)
x = driver.page_source
#Function to clean
def cleanhtml(raw_html):
cleanr = re.compile('<.*?>')
cleantext = re.sub(cleanr, '', raw_html)
return cleantext
#Cleaning
x = str(x).replace('<', ' <')
x = cleanhtml(x)
x = x.replace('<br>', ' ').replace(' ', ' ').replace('&', '&').replace('/\s\s+/g',' ').replace('•', ' ').replace("<", " ").replace("_", " ").replace("●", " ")
x = ' '.join(x.split())
#Results with persist to have multiple white spaces :-(
print(x)
Примечание : Я только что отредактировал свой вопрос, так как мой предыдущий пример был неподходящим! Спасибо за ваши ответы!