def url_to_mid(url):
''''
>>> url_to_mid('z0JH2lOMb')
3501756485200075L
>>> url_to_mid('z0Ijpwgk7')
3501703397689247L
>>> url_to_mid('z0IgABdSn')
3501701648871479L
>>> url_to_mid('z08AUBmUe')
3500330408906190L
>>> url_to_mid('z06qL6b28')
3500247231472384L
>>> url_to_mid('yCtxn8IXR')
3491700092079471L
>>> url_to_mid('yAt1n2xRa')
3486913690606804L
'''
url = str(url)[::-1]
size = len(url) / 4 if len(url) % 4 = = 0 else len(url) / 4 + 1
結果 = []
for i in range(size):
s = url[i * 4: (i + 1) * 4][: :-1]
s = str(base62_decode(str(s)))
s_len = len(s)
if i s = (7 - s_len) * '0' + s
result.append(s)
result.reverse()
return int(''.join(result))
mid を URL にするのも簡単です。mid については、7 ビットずつ後ろから前に、base62 でエンコードし、エンコードします。同様に注意してください。
の数字は、先頭の 1 組を除いて、62 の整数 4 桁が得られると、0 が不足します。
复制代 代码如下:
def mid_to_url(midint):
'''
>> ;> mid_to_url(3501756485200075)
'z0JH2lOMb'
>>> mid_to_url(3501703397689247)
'z0Ijpwgk7'
>>> mid_to_url(3501701648871479)
'z0IgABdSn'
>>> mid_to_url(3500330408906190)
'z08AUBmUe'
>>> mid_to_url(3500247231472384)
'z06qL6b28'
>>> mid_to_url(3491700092079471)
'yCtxn8IXR'
>>> mid_to_url(3486913690606804)
'yAt1n2xRa'
'''
midint = str(midint)[::-1]
size = len(midint) / 7 if len(midint) % 7 = = 0 else len(midint) / 7 + 1
result = []
for i in range(size):
s = Midint[i * 7: (i + 1) * 7][: :-1]
s =base62_encode(int(s))
s_len = len(s)
if i <サイズ - 1 およびレンズ s = '0' * (4 - s_len) + s
result.append(s)
result.reverse()
return ''.join(result)
doctest を実行すると、すべてのテスト アプリケーションが通過したことが確認できます。
最後に我不太明白は何新浪微博の URL を直接ハンドルするのではなく、新浪微博の公開平台にも多数の不一致規格の場所があり、本文の内容は何もありません。リフレッシュトークンのようなトークンもあり、ここには何もありません。