2

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

谢谢!

马泰奥

4

2 回答 2

8

cgi.escape救援:

cgi.escape(s[, quote])

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

快速交互检查:

>>> import cgi
>>> cgi.escape('<&>')
'&lt;&amp;&gt;'
>>> 
于 2009-10-30T14:36:11.887 回答
7

Saxutils对 XML 实体有一个转义函数:

>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&amp;'
于 2009-10-30T14:38:08.840 回答