0

我正在编写一个 python 脚本,它将提取 facebook 视频的 url。但是在视频页面的源代码中,我在 url 中看到了一些形式为 \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 字符转换为简单的字符,有什么办法吗?

4

1 回答 1

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'
于 2013-08-31T21:07:49.173 回答