【问题标题】:Python: replace \n \r \t in a list excluding those starting \n\n and ends with \n\r\n\tPython:替换列表中的 \n \r \t,不包括以 \n\n 开头并以 \n\r\n\t 结尾的列表
【发布时间】:2023-04-03 00:32:01
【问题描述】:

我的清单:

['\n\r\n\t这篇文章是关于甜香蕉的。对于哪个属
属于香蕉植物,参见 Musa (genus)。\n\r\n\t对于淀粉类香蕉
用于烹饪,请参阅烹饪香蕉。有关其他用途,请参阅香蕉
(消歧义)\n\r\n\tMusa 物种原产于热带 Indomalaya
和澳大利亚,并且很可能首先在巴布亚被驯化
新几内亚。\n\r\n\t它们生长于 135 年
国家/地区。\n\n\n\r\n\t在全球范围内,两者之间没有明显区别
“香蕉”和“车前草”。\n\n描述\n\r\n\t香蕉植物是
最大的草本开花植物。\n\r\n\t所有地上
香蕉植物的部分从通常称为
"corm"。\n\n词源\n\r\n\t香蕉这个词被认为是西方的
非洲血统,可能来自 Wolof 词香蕉,并传入
英语通过西班牙语或葡萄牙语。\n']

示例代码:

import requests
from bs4 import BeautifulSoup
import re
re=requests.get('http://www.abcde.com/banana')
soup=BeautifulSoup(re.text.encode('utf-8'), "html.parser")
title_tag = soup.select_one('.page_article_title')
print(title_tag.text)
list=[]
for tag in soup.select('.page_article_content'):
    list.append(tag.text)
#list=([c.replace('\n', '') for c in list])
#list=([c.replace('\r', '') for c in list])
#list=([c.replace('\t', '') for c in list])
print(list)

抓取网页后,我需要进行数据清理。我想把所有的"\r","\n","\t"替换成"",但是发现里面有字幕,如果这样做,字幕和句子会混在一起强>。

每个字幕总是以\n\n 开头并以\n\r\n\t 结尾,我是否可以在此列表中做一些事情来区分它们,例如\aEtymology\a。如果我将\n\n\n\r\n\t 分别替换为\a 将不起作用,首先因为其他部分可能具有与\n\n\r 相同的元素,它会变成\a\r。提前致谢!

【问题讨论】:

    标签:
    python
    web-scraping
    data-cleaning