转换&到&在Python中

时间:2009-10-30 14:33:02

标签: python xml sitemap urlencode

我正在使用Python中的简单爬虫程序。目的是创建一个sitemap.xml。 (你可以在这里找到非常版的alpha版本:http://code.google.com/p/sitemappy/) 我注意到,如果我使用包含非HTML实体(例如&)的网址生成xml,则xml不会验证,Google网站站长工具也不会接受。 有没有快速的方法来编码URL的查询字符串部分?

谢谢!

利玛

2 个答案:

答案 0 :(得分:8)

cgi.escape救援:

  

cgi.escape(s[, quote])

     

转换字符'&','<'和'>'在字符串s到HTML安全序列。如果需要在HTML中显示可能包含此类字符的文本,请使用此选项。如果可选标记引用为true,则引号字符('“')也会被翻译;这有助于包含在HTML属性值中,如下所示。如果要引用的值可能包括单引号或双引号字符,或两者,请考虑使用xml.sax.saxutils模块中的quoteattr()函数。

快速互动检查:

>>> import cgi
>>> cgi.escape('<&>')
'&lt;&amp;&gt;'
>>> 

答案 1 :(得分:6)

Saxutils具有XML实体的转义函数:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'