替换或取消&在我的Python代码中不起作用。为什么?

时间:2014-04-22 15:01:43

标签: python

两者都在交互式控制台(空闲)中工作。 我的消息来源:

        from HTMLParser import HTMLParser
        parser = HTMLParser()
        a=autohist # autohist is a string containing source from selenium
        tags = []
        start = 0
        while a.find("alt=\\\"", start) != -1:
            find = a.find("alt=\\\"", start)+6
            print find
            titleartist = ""
            while a[find] != "\\":
                s = a[find]
                titleartist = titleartist + s
                find +=1
            start=find+1
            if titleartist=="Explicit Lyrics":
                continue
            titleartist = titleartist.replace("&","shit")
            #titleartist = parser.unescape(titleartist)
            print titleartist
            tags.append((titleartist.split(" - ")[1],titleartist.split(" - ")[0]))

但是当我使用selenium Firefox获取html源代码时 例如:

 titleartist="Diana Ross & The Supremes"

它打印出来:      戴安娜罗斯shitamp;至高无上的

显然,我想将&替换为&,但此示例显示了问题。

1 个答案:

答案 0 :(得分:0)

不知何故,第一个while部分会对其进行双重编码,因此解决方案是将其解码两次。例如:

titleartist.replace("&","&").replace("&","&")