Самый быстрый способ вырезать текст из символов \ n, \, \ t, \ xa0, â \ x80 \ x93 в Python - PullRequest
1 голос
/ 22 января 2020

Я конвертирую html данные с Beautifulsoup, собираю весь текст в теги 'p' и преобразую его в строку. Я сделал это, используя:

source = BeautifulSoup(response.text, "html.parser")

content = ""

for section in source.findAll('p'):
    content += section.get_text()

Однако, когда я конвертирую его, теги, подобные упомянутым, разбросаны по всей строке. Я пробовал несколько способов удалить все эти символы из строк, которые я использую, например:

unicodedata.normalize('NFKC', text)

content = u" ".join(content.split())

text.strip(), text.rstrip()

Есть ли библиотека, которая может удалить эти теги из строки. Некоторые из этих методов решают некоторые проблемы, но большинство из них все еще остаются.

Редактировать: Вот пример строки: https://pastebin.com/2DGECKXa

Ответы [ 2 ]

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

Вы можете написать функцию для этого, используя метод .replace.

def clean_up_text(text):
    unwanted_chars = ['\n', '\t', 'r', '\xa0', 'â\x80\x93'] # Edit this to include all characters you want to remove
    for char in unwanted_chars:
        text = text.replace(char, '')
    return text

Затем вы можете применить функцию clean_up_text, чтобы удалить все нежелательные символы.

new_text = clean_up_text(old_text)
0 голосов
/ 22 января 2020

Посмотрите, работает ли это

from simplified_scrapy.simplified_doc import SimplifiedDoc

doc = SimplifiedDoc(response.text)
content = ""
for section in doc.ps:
    content += section.text
    # content += section.unescape()
print (content)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...