【问题标题】:&#65279 is giving weird spaces&#65279 给出了奇怪的空间
【发布时间】:2018-03-25 22:46:06
【问题描述】:

我有一个如下所示的网站:

<div>
  <p>Par&#65279;agra&#65279;ph 1</p> 
</div>

但是当我尝试在 Python 中打印它时:

for paragraph in div.find_all("p"):
  print(paragraph.text)

结果是这样的:

第 1 段

如何在不删除预期空间的情况下删除 &amp;#65279 空格?

编辑 这是我的代码

srcu = urllib.request.urlopen("url").read();
src = bs.BeautifulSoup(srcu, "lxml")

for paragraph in src.find_all("p"):
    a = pragraph.text
    print(a)



exit()

【问题讨论】:

  • 是的,我正在使用 BeautifulSoup
  • 那是零宽度无间断空间' (U+FEFF)。您可以像替换任何其他角色一样替换它。
  • usr2564301 这不起作用,但也许我做错了。 a = a.replace("U+FEFF", "") ?
  • ...你做错了。该字符没有文字文本U+FEFF。在文档中查找如何在 Python 中指定 unicode 文字。

标签: python python-3.x beautifulsoup


【解决方案1】:

以下方法可行:

from bs4 import BeautifulSoup

html = """<div>
  <p>Par&#65279;agra&#65279;ph 1</p> 
</div>"""

soup = BeautifulSoup(html, 'html.parser')

for p in soup.find_all('p'):
    print(p.text.replace('\uFEFF', ''))

给你:

Paragraph 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多