• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python新浪微博爬虫,python爬取新浪微博,新浪sae python,python新浪微博,新浪微博url等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

不过,status中包含了一个mid字段,通过mid,我们实际上是可以通过计算得到url的。

在开始计算之前有必要说明一下,什么是base62编码。它实际上就是十进制和62位进制的互换。对于62进制,从0数到9以后,10用小写字母a表示,接着数完26个字母,到z为35,然后36为大写字母A,一直到61为大写字母Z。所以,我们可以实现十进制数字base62编码的encode和decode。下面的代码实际上来自stackoverflow:

下面先说url到mid的转换。对于一个新浪微博url,它是形如:http://weibo.com/2991905905/z579Hz9Wr,中间的数字是用户的uid,重要的是后面的字符串“z579Hz9Wr”。它的计算其实也很简单,从后向前四个字符一组,就得到:

将每个字符串用base62编码来decode,就可以得到它们的十进制数字分别为:

将它们拼起来就可以得到mid为:“3512191498379699”。这里要强调的是:对于除了开头的字符串,如果得到的十进制数字不足7位,需要在前面补足0。比如得到的十进制数分别为:35,33040,8906190,则需要在33040前面添上两个0。
代码如下:

mid转为url也就很简单了,对于一个mid,我们从后向前每7位一组,用base62编码来encode,拼起来即可。同样要注意的是,每7个一组的数字,除了开头一组,如果得到的62进制数字不足4位,需要补足0。

运行doctest可以看到所有的测试用例都通过了。

最后其实我不太明白为什么新浪微博不直接把url包含在字段中,而新浪微博的开放平台也有很多不符合标准的地方,其实本文的内容并没有什么技术含量,不过就是让开发人员折腾一下。还有比如refresh token的问题等等,这里就不一一枚举了。

</div>

您可能想查找下面的文章:

  • 用Python编写简单的微博爬虫
  • 基于python编写的微博应用
  • Python 获取新浪微博的最新公共微博实例分享
  • 使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
  • python模拟新浪微博登陆功能(新浪微博爬虫)

相关文章

  • python使用点操作符访问字典(dict)数据的方法
  • Python 列表(List)操作方法详解
  • 详解python3实现的web端json通信协议
  • netbeans7安装python插件的方法图解
  • 在Python的Flask中使用WTForms表单框架的基础教程
  • 详解Python3中yield生成器的用法
  • Python解析xml中dom元素的方法
  • python实现simhash算法实例
  • python实现识别相似图片小结
  • 在Django中创建动态视图的教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 在Python的循环体中使用else语句的方法
    • Python的Django框架安装全攻略
    • python设置检查点简单实现代码
    • python实现按任意键继续执行程序
    • 实例讲解Python中SocketServer模块处理网络请求的用法
    • python模拟登录百度代码分享(获取百度贴吧等级)
    • python动态参数用法实例分析
    • Python遍历文件夹和读写文件的实现代码
    • python实现简单ftp客户端的方法
    • Python中列表元素转为数字的方法分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有