我正在用 Python 开发一个简单的爬虫。目的是创建一个sitemap.xml。(你可以在这里找到非常 alpha 版本:http ://code.google.com/p/sitemappy/ )我注意到,如果我使用包含非 HTML 实体(例如 &)的 URL 生成 xml,则 xml 不会验证,它不被谷歌网站管理员工具接受。有没有一种快速的方法来编码 URL 的查询字符串部分?
谢谢!
马泰奥
cgi.escape
救援:
cgi.escape(s[, quote])
将字符串 s 中的字符 '&'、'<' 和 '>' 转换为 HTML 安全序列。如果您需要在 HTML 中显示可能包含此类字符的文本,请使用此选项。如果可选标志 quote 为真,则引号字符 ('"') 也会被翻译;这有助于包含在 HTML 属性值中,如 . 如果要引用的值可能包括单引号或双引号字符,或两者都考虑使用 xml.sax.saxutils 模块中的 quoteattr() 函数。
快速交互检查:
>>> import cgi
>>> cgi.escape('<&>')
'<&>'
>>>
Saxutils对 XML 实体有一个转义函数:
>>> from xml.sax import saxutils
>>> saxutils.escape("&")
'&'