我正在编写一个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字符,有什么办法吗?
答案 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'