python - 如何从 html 内容中删除 "&nbsp"?

标签 python html string unicode beautifulsoup

我有一个 html 页面:

<div class="theater">
    <div class="desc" id="theater_16109207495969942346">
        <h2 class="name"><a href="/movies?near=pune&amp;tid=df8f66de0a592b4a" id="link_1_theater_16109207495969942346">Esquare Victory Camp</a></h2>
        <div class="info">site no 2429,general thimayya road, camp contonment,oppositekayani bakery, Pune - 020 2613 2975
            <a class="fl" href="" target="_top"></a>
        </div>
    </div>
    <div class="showtimes">
        <div class="show_left">
            <div class="movie">
                <div class="name"><a href="/movies?near=pune&amp;mid=1cdcf90092189400">Hawaa Hawaai</a>
                </div><span class="info">Drama - Hindi</span>
                <div class="times"><span style="color:#666"><span style="padding:0 "></span>
                    <!-- -->10:30am</span><span style="color:#666"><span style="padding:0 "> &amp;nbsp</span>
                    <!-- -->3:45</span><span style="color:#666"><span style="padding:0 "> &amp;nbsp</span>
                    <!-- -->6:00</span><span style="color:"><span style="padding:0 "> &amp;nbsp</span>
                    <!-- -->8:30pm</span>
                </div>
            </div>
        </div>
        <div class="show_right">
            <div class="movie">
                <div class="name"><a href="/movies?near=pune&amp;mid=6b59ad39004d895b">The Amazing Spider Man 2</a>
                </div><span class="info">Action/Adventure/Thriller - English - <a class="fl" href="/url?q=http://www.youtube.com/watch%3Fv%3DSCjCk59PIzw&amp;sa=X&amp;oi=movies&amp;ii=0&amp;usg=AFQjCNGpVM5U04h0acABA7eApb6EIO4Ejw">Trailer</a></span>
                <div class="times"><span style="color:#666"><span style="padding:0 "></span>
                    <!-- -->1:00</span><span style="color:"><span style="padding:0 "> &amp;nbsp</span>
                    <!-- -->10:45pm</span>
                </div>
            </div>
        </div>
        <p class="clear"></p>
    </div>
</div>

在我们可以看到的地方,我们在许多地方都有 &nbsp。还有许多其他 unicode 字符。我想提取此页面的内容。 我正在做的是:

def removeNonAscii(s): return "".join(i for i in s if ord(i)<128)

myName = soup.findAll("div", {"class" : "theater"})
for x in myName:
   xt = str(x)
   print removeNonAscii(xt)
   print "<br>"

结果:

Esquare Victory Camp
site no 2429,general thimayya road, camp contonment,oppositekayani bakery, Pune - 020 2613 2975
Hawaa Hawaai
Drama - Hindi
10:30am &nbsp3:45 &nbsp6:00 &nbsp8:30pm
The Amazing Spider Man 2
Action/Adventure/Thriller - English - Trailer
1:00 &nbsp10:45pm

除了   之外,一切看起来都不错。我尝试替换  ,并搜索了其他解决方案,但仍然没有解决方案。我认为   没有 ; 会产生问题。如何删除  

最佳答案

lxml.html 可能是一个更适合您的库,它将把“ ”和其他 HTML 标签替换为正确的字符。

import lxml.html
import lxml.html.clean
html = """your HTML"""
doc = lxml.html.fromstring(html)
cleaner = lxml.html.clean.Cleaner(style=True)
doc = cleaner.clean_html(doc)
text = doc.text_content()

关于python - 如何从 html 内容中删除 "&amp;nbsp"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23612489/

相关文章:

python - 元素树 : TypeError: argument of type 'Sentence' is not iterable

python - 列表中组合的乘积之和

python - 忽略 Python 字符串中的大小写

html - Safari 和 FireFox 中 div 中的垂直中心图像差异

html - 我想在 Express.js 中渲染静态 html,但仍然有 app.get() 逻辑方法

python - VS Code 在 MacOS 上未检测到 Python3 解释器

html - 字体不会在服务器上加载

java - java中的字符串解析

c# - 修改传递给C dll的char数组c#

c# - 如何将空格(引号内的空格除外)转换为 C# 中的逗号?