使用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自动化运维之IP地址处理模块详解

    Python自动化运维之IP地址处理模块详解 什么是IP地址处理模块 在Python自动化运维领域,IP地址处理是非常常见的任务。在处理IP地址时,我们需要进行多种操作,如IP地址判断、IP地址相加、IP地址相减等等。为了帮助Python开发者更方便地完成这些任务,Python标准库中提供了一个IP地址处理模块,称为ipaddress。 ipaddress模…

    python 2023年6月6日
    00
  • Python 修改CSV文件实例详解

    让我们详细讲解“Python 修改CSV文件实例详解”的完整攻略。 更新CSV文件基础知识 CSV文件是指逗号分隔值文件,通常用于在计算机之间交换表格数据。每行表示为一行,而每个字段之间用逗号分隔。在Python中,我们可以使用内置的csv模块来处理CSV文件。 在处理CSV文件时,我们通常会涉及到以下操作: 读取CSV文件并获取所有行和列。 修改CSV文件…

    python 2023年6月3日
    00
  • python自动化脚本安装指定版本python环境详解

    Python自动化脚本安装指定版本Python环境 介绍 在开发Python应用程序的过程中,需要使用Python的不同版本,但是在不同的操作系统上安装Python可能存在一些问题,特别是当需要安装多个版本时。Python自动化脚本可以自动化地安装和配置不同版本的Python环境。 本攻略将讲解如何使用Python自动化脚本安装指定版本的Python环境,包…

    python 2023年5月19日
    00
  • python list数据等间隔抽取并新建list存储的例子

    以下是“Python中列表数据等间隔抽取并新建list存储的例子”的完整攻略。 1. 列表数据等间隔抽取 在Python中,我们可以使用切片操作来抽取列表中的数据。切操作可以通过指定起索引、结束索引和步长来实现。 my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] new_list = my_list[::2] print(n…

    python 2023年5月13日
    00
  • 一文详解Python中的重试机制

    一文详解Python中的重试机制 重试机制是一种自动化技术,用于在发生错误时自动重试操作。在Python中,重试机通常用于处理网络请求、数据库操作需要与外部系统交互的场景。当发生错误时,重试机制会自动重新执行操作,直到操作成功或达最大重次数为止。 使用retrying模块实现重试机制 在Python中,我们可以使用retrying模块来实现重试机。retry…

    python 2023年5月13日
    00
  • pip报错“ValueError: invalid literal for int() with base 10: ‘3.1’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ValueError: invalid literal for int() with base 10: ‘3.1’”错误。这个错误通常是由以下原因之一引起的: 版本号格式错误:如果您的Python包版本号格式不正确,则可能会出现此错误。在这种情况下,需要更正版本号格式。 pip版本过低:如果您的pip版本过低,则…

    python 2023年5月4日
    00
  • python 搭建简单的http server,可直接post文件的实例

    在Python中,我们可以使用http.server模块来搭建一个简单的HTTP服务器。本文将介绍如何使用http.server模块搭建一个简单的HTTP服务器,并提供两个示例,演示如何直接POST文件。 1. 搭建简单的HTTP服务器 首先,我们需要使用http.server模块搭建一个简单的HTTP服务器。以下是一个示例,演示如何使用http.serve…

    python 2023年5月15日
    00
  • 从在 python ThreadPoolExecuter 中运行 kafka 消费者的 concurrent.futures 获取结果

    【问题标题】:get result from concurrent.futures which runs a kafka consumer in a python ThreadPoolExecuter从在 python ThreadPoolExecuter 中运行 kafka 消费者的 concurrent.futures 获取结果 【发布时间】:2023-…

    Python开发 2023年4月5日
    00
合作推广
合作推广
分享本页
返回顶部