如何去除网页文本中的无意义空格且保留正常空格?
解决零宽空格导致的文本拆分问题
你遇到的这个问题,根源是那个字符——它其实是零宽空格(Unicode编码U+FEFF),虽然肉眼看不见,但被BeautifulSoup解析后会变成让文本“断成碎块”的无效空格。
要在保留正常空格的前提下清理掉它,只需要在获取段落文本后,把这个特定的Unicode字符替换掉就行。修改后的代码如下(顺便帮你修正了原代码里的pragraph拼写错误):
import urllib.request from bs4 import BeautifulSoup srcu = urllib.request.urlopen("你的目标URL").read() src = BeautifulSoup(srcu, "lxml") for paragraph in src.find_all("p"): # 替换零宽空格(U+FEFF)为空字符串,保留正常空格 clean_text = paragraph.text.replace('\ufeff', '') print(clean_text)
如果后续遇到其他类似的不可见控制字符,也可以用unicodedata模块进一步过滤,但针对你当前的场景,直接替换\ufeff就足够解决问题了。
内容的提问来源于stack exchange,提问作者MariusE
相关产品推荐
相关产品推荐

