将形式为“\ uxxxxxx”的unicode转换为字符串或文本

时间:2013-08-31 21:05:05

标签: python unicode python-unicode unicode-escapes

我正在编写一个python脚本,它将提取facebook视频的网址。但是在视频页面的源代码中,我在网址中看到了一些形式为\ uxxxxxx的字符。

例如url采用这种形式

https\u00253A\u00255C\u00252F\u00255C\u00252Ffbcdn-video-a.akamaihd.net\u00255C\u00252Fhvideo-ak-prn2\u00255C\u00252Fv\u00255C\u00252F753002_318048581647953_53890_n.mp4\u00253Foh\u00253D64e3e8ecf7e88f1da335d88949b2dc1f\u002526oe\u00253D52226D10\u002526__gda__\u00253D1377987338_9e37fb163a1d37d4b06ab7cff668f7dc\u002522\u00252C\u002522

\ u00253A是冒号(:),但我如何转换它。

当我喜欢的时候

>>> x.decode('unicode_escape').encode('ascii','ignore')

我得到了

'https%3A%5C%2F%5C%2Ffbcdn-video-a.akamaihd.net%5C%2Fhvideo-ak-prn2%5C%2Fv%5C%2F753002_318048581647953_53890_n.mp4%3Foh%3D64e3e8ecf7e88f1da335d88949b2dc1f%26oe%3D52226D10%26__gda__%3D1377987338_9e37fb163a1d37d4b06ab7cff668f7dc%22%2C%22

我想要确切的网址不是百分比。

我搜索了很多但找不到任何帮助。

提前致谢

修改

如果我通过facebook页面的整个来源,然后将所有这些复杂的unicode字符转换为简单的unicode字符,有什么办法吗?

1 个答案:

答案 0 :(得分:2)

>>> import urllib
>>> s = b'https\u00253A\u00255C\u00252F\u00255C\u00252Ffbcdn-video'
>>> print urllib.unquote_plus(s.decode('unicode_escape'))
https:\/\/fbcdn-video

似乎你的字符串被反击了。

>>> import re
>>> import urllib
>>> s = b'https\u00253A\u00255C\u00252F\u00255C\u00252Ffbcdn-video'
>>> re.sub(r'\\(.)', r'\1', urllib.unquote_plus(s.decode('unicode_escape')))
u'https://fbcdn-video'