网站调用新浪微博内容(新浪微博API获取数据时数组采集中一个很好的方法)

优采云 发布时间: 2021-10-26 15:20

  网站调用新浪微博内容(新浪微博API获取数据时数组采集中一个很好的方法)

  调用新浪微博API获取数据时数组采集中的一个好方法。为了获取更新的信息和数据内容,本文主要介绍了新浪微博OAuth2.0授权机制和微博开发平台的使用,python调用微博API等,在文末,提供了python beta版调用微博API的代码。

  1.新浪微博OAuth2.0授权机制

  官方详情请参考链接:

  新浪微博OAuth2.0授权机制

  2.使用微博开发者平台

  地址:

  

  打开微博开发者平台,使用网站访问WEB。(您可以尝试移动或微服务)。

  

  点击右上角登录:

  

  使用帐户登录或安全登录。如果您没有微博账号,您可以点击立即注册,自行注册一个。

  登录后,点击Immediate Access,新建一个应用如下:

  

  在此过程中,应用名称可能与已有的名称冲突,多次更改后创建成功。创建成功后页面会自动跳转如下:

  

  此时,您可以看到新创建的 A*敏*感*词*ey 和 App Secret。

  还没完,还需要获取OAuth2.0授权回调页面,点击左侧高级信息:

  

  此时可以看到授权回调页面:未填写,取消授权回调页面:未填写。 点击右侧的编辑,输入两个地址:

  

  如果暂时想不出合适的地址,可以填写

  点击提交后,微博开发者平台的相关配置就完成了。

  3.python调用微博API

  环境:pycharm,python3.6

  安装包:sinaweibopy-ng

  注:由于测试时无法安装网传安装包sinaweibopy,可能是版本不同造成的。官方SDK下载地址如下:,但测试时无法访问,所以下载的安装包为sinaweibopy-ng进行测试,如图:

  

  测试版python调用微博API的完整代码如下:

  """

!/usr/bin/env python3.6

-*- coding: utf-8 -*-

--------------------------------

Description :

--------------------------------

@Time : 2019/4/14 18:40

@File : weiboAPI.py

@Software: PyCharm

--------------------------------

@Author : lixj

@contact : lixj_zj@163.com

"""

from weibo import APIClient

# 1.配置

APP_KEY = '你的APP_KEY'

APP_SECRET = '你的APP_SECRET'

CALLBACK_URL = '你的CALLBACK_URL' # 回调授权页面,用户完成授权后返回的页面

# 2.调用APIClient生成client实例

client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)

# 3.得到授权页面的url

url = client.get_authorize_url()

print(url)

# 4.点击访问url,在浏览器端获得code

code = '6ecdbf350f0680a6f00cc8c34ae721a6'

req = client.request_access_token(code)

client.set_access_token(req.get('access_token'), req.get('expires_in'))

# 5.调用微博普通读取接口,返回最新的公共微博。

# 接口详情见 https://open.weibo.com/wiki/2/statuses/public_timeline

statuses = client.statuses__public_timeline()['statuses']

print(len(statuses))

# 6.输出部分信息

for i in range(0, len(statuses)):

print(u'昵称:' + statuses[i]['user']['screen_name'])

print(u'简单介绍:' + statuses[i]['user']['description'])

print(u'位置:' + statuses[i]['user']['location'])

print(u'微博:' + statuses[i]['text'])

print(statuses[i])

  问题 1:

  确保您使用此包支持的 Python 版本。目前您正在使用 Python 3.6.

  不兼容python版本,安装silangweiboapi-en

  问题2:

  注册微博开发版,账号设置-高级设置;

  授权回调页面不收录在授权设置中。

  只需填写完整的信息,对应填写的网站。

  问题 3:

  输出信息方法:

  statuses = client.statuses__public_timeline()['statuses']

  问题 4:

  每次调用 api 时,连接的代码的值都会改变。

  解决方法:待解决。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线