使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)

这里对于使用Python进行新浪微博的mid和url互相转换的完整攻略进行详细讲解。

1.前置知识

在进行本文中的操作前,需要了解一些相关的知识:

  • 新浪微博的URL中包含了一个mid的参数,用于唯一标识一条微博,mid是基于62进制编码的。
  • 62进制编码是一种将数值(0-9)、大写字母(A-Z)和小写字母(a-z)全部作为编码字符的进位计数制,共62个字符,将不同进制下的数值之间进行相互转换。

2.将mid转换为url

新浪微博的URL中包含了一个mid参数,可以通过mid参数获取到特定的微博。下面是将mid转换为url的方法:

def mid2url(mid):
    url = 'https://weibo.com/{}/{}'.format(mid[:mid.find('_')], mid[mid.find('_')+1:])
    return url

代码中的mid是需要转化的mid值,url即为对应的微博url。mid中下划线之前的部分为用户uid,下划线之后的部分为每条微博的唯一标识。

下面是mid2url()方法的使用示例:

mid2url('4455014833125967')
Out[2]: 'https://weibo.com/1713926427/G88afj9zX'

在代码中,我们把'4455014833125967'作为输入的mid,最后得到了该微博的url。

3.将url转换为mid

下面是将url转换为mid的方法:

def url2mid(url):
    mid = url[url.rfind('/')+1:]
    mid_10 = 0
    for i, c in enumerate(mid[::-1]):
        mid_10 += (62**i) * TABLE[c]
    return str(mid_10)
TABLE = {
    '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, 'a': 10, 'b': 11, 'c': 12, 'd': 13, 'e': 14, 'f': 15, 'g': 16,
    'h': 17, 'i': 18, 'j': 19, 'k': 20, 'l': 21, 'm': 22, 'n': 23, 'o': 24, 'p': 25, 'q': 26, 'r': 27, 's': 28, 't': 29, 'u': 30, 'v': 31,
    'w': 32, 'x': 33, 'y': 34, 'z': 35, 'A': 36, 'B': 37, 'C': 38, 'D': 39, 'E': 40, 'F': 41, 'G': 42, 'H': 43, 'I': 44, 'J': 45, 'K': 46,
    'L': 47, 'M': 48, 'N': 49, 'O': 50, 'P': 51, 'Q': 52, 'R': 53, 'S': 54, 'T': 55, 'U': 56, 'V': 57, 'W': 58, 'X': 59, 'Y': 60, 'Z': 61}

在代码中,url是需要转换的微博url。mid即为对应的微博mid。mid_10为10进制数。TABLE是62进制的对应表。

下面是url2mid()方法的使用示例:

url2mid('https://weibo.com/1713926427/G88afj9zX')
Out[3]: '4455014833125967'

4.总结

以上就是将新浪微博的mid和url互相转换的完整攻略。可以根据上述方法很方便的实现这个功能,尤其是mid2url()方法,可以通过传入mid值直接返回指定微博的url。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Python中的函数是什么?如何定义和调用函数?

    Python中的函数是一个可复用的代码块,该代码块能够完成一定的计算任务,并能够返回结果。函数的主要作用是将程序分解为小的可重用的模块,以便于不同的代码段相互独立。函数的定义包含函数名、参数列表及函数体。 函数的定义 函数的定义通常使用关键词def,其语法格式为: def function_name(parameters): ""&quo…

    python 2023年4月19日
    00
  • python strip() 函数和 split() 函数的详解及实例

    Python strip()函数和split()函数的详解及实例 本文将介绍Python中的strip()函数和split()函数的用法及实例。strip()函数用于去除字符串的首尾空格和特定字符,split()函数用于将字符串按照指定的分隔符进行分割。本文将分为以下几个部分: strip()函数的用法及实例 split()函数的用法及实例 示例说明 str…

    python 2023年5月14日
    00
  • Python list和str互转的实现示例

    以下是详细讲解“Python list和str互转的实现示例”的完整攻略。 Python list和str互转 在Python中,我们经常需要将list和str类型相互转换。下面将分别介绍如何将list转换str,以及如何将str转换为list。 list转str 将list转换为str可以使用join()方法,该方法将列表中的元素连接成一个字符串。下面是一…

    python 2023年5月13日
    00
  • Python按键或值对字典进行排序

    下面是Python按键或值对字典进行排序的完整攻略: 按键(key)排序 可以利用Python的内置函数sorted()和字典的items()方法对字典中的键(key)进行排序。具体步骤如下: 使用items()方法把字典转为元组列表,形式为[(key1, value1), (key2, value2), …]。 使用sorted()函数对元组列表进行排…

    python 2023年5月13日
    00
  • python list转置和前后反转的例子

    以下是详细讲解“Python列表转置和前后反转的例子”的完整攻略。 Python列表转置 在Python中,可以使用嵌套的列表来表示矩阵。如果要对矩阵进行转置,可以使用嵌套列表和for循环来实现。下面是一个示例,演示了如何使用列表转置: matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] transpose = [[row[…

    python 2023年5月13日
    00
  • Python3.8 + Tkinter: Button设置image属性不显示的问题及解决方法

    接下来我将详细讲解“Python3.8 + Tkinter: Button设置image属性不显示的问题及解决方法”的完整攻略。 问题描述 在Python3.8 + Tkinter下,按钮(Button)组件设置image属性时,有时会出现图片不显示的情况。这可能会导致用户无法正确识别按钮的功能,影响用户体验。 原因分析 这种情况发生的原因在于,Python…

    python 2023年6月13日
    00
  • 浅谈Python中threading join和setDaemon用法及区别说明

    我将为你详细讲解“浅谈Python中threading join和setDaemon用法及区别说明”的完整攻略。 1. 简介 在Python中,使用threading模块可以创建并发的线程。在多线程编程中,有两种常用的线程常用方法,分别是join()和setDaemon()方法。 2. join方法 join()方法是Thread类提供的一个方法,用来阻塞主…

    python 2023年5月19日
    00
  • Python中easy_install 和 pip 的安装及使用

    Python中的easy_install和pip是两个常用的包管理工具,它们可用于安装Python模块或库,并自动处理依赖关系,简化了Python包的安装过程。下面将详细讲解easy_install和pip的安装及使用。 安装easy_install 安装easy_install的方式有多种,这里以使用安装setuptools工具包的方式为例: 下载setu…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部