,和app-secret登陆微博开放平台创建应用名称的授权回调页

优采云 发布时间: 2021-06-19 05:04

  ,和app-secret登陆微博开放平台创建应用名称的授权回调页

  一.创建应用程序

  创建应用的目的是获取app-key和app-secret,设置授权回调页面。

  (1)Get app-key 和 app-secret

  登录微博开放平台创建应用

  

  随意填写应用名称及后续信息。填写完成后,无需提交审核。您所需要的只是应用程序密钥和应用程序机密。应用创建成功后,可以在“我的应用”中看到新创建的应用的详细信息,在“应用信息”中可以找到App Key和App Secret,后面会用到。

  

  (2)设置授权回调页面

  在上面的旁边,打开“申请信息”中的“高级信息”,然后点击“高级信息”中的“编辑”按钮,将“授权回调页面”设置为:同时设置“取消授权回调页面”为:。至此,第一步已经完成。

  

  二.安装微博SDK

  (1)授权机制

  %E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E

  (2)下载微博SDK

  微博 SDK 支持多种语言。本文以python SDK为例来说明操作。微博SDK链接,点击进入并选择您熟悉的语言的SDK,如下图:

  

  安装python版微博SDK:

  直接在命令行下输入

  pip install sinaweibopy3

  或者去 Gethub 下载库

  获取代码和令牌信息

  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])

  通过模拟登录获取验证码

  from weibo import APIClient

from selenium import webdriver

import time

APP_KEY='填入你的key'

APP_SECRET='填入你的secret'

CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html

# callback url

#在网站放置“使用微博账号登录”的链接,当用户点击链接后,引导用户跳转至如下地址:

#利用官方微博SDK

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

#得到授权页面的url,利用webbrowser打开这个url

url = client.get_authorize_url()

river.get(url)

time.sleep(3)

#填充用户名 密码

driver.find_elements_by_id("userId")[0].send_keys("自己的账户")

driver.find_elements_by_id("passwd")[0].send_keys("密码")

time.sleep(5)

driver.find_element_by_class_name("WB_btn_login").click()

# print(driver.page_source)

if '验证码:' in driver.page_source:

img_ele=driver.find_element_by_xpath('//img[@node-type="pincode"]')

image_url = img_ele.get_attribute('src')

print(image_url)

if image_url != None:

import requests

response=requests.get(image_url)

with open('pincode.jpg', 'wb') as f:

f.write(response.content)

vares_img=input('请输入:\n')

driver.find_element_by_class_name('WB_iptxt').send_keys(vares_img)

driver.find_element_by_class_name("WB_btn_login").click()

print('成功登录微博')

time.sleep(5)

content = driver.current_url

# 设置得到的access_token

print(content)

#获取code=后面的内容

用正则匹配

code = re.complish(r"code=")findall(comtent)

r = client.request_access_token(code)

access_token = r.access_token # 新浪返回的token,类似abc123xyz456

expires_in = r.expires_in

# 设置得到的access_token

client.set_access_token(access_token, expires_in)

#可以打印下看看里面都有什么东西

statuses = client.statuses__friends_timeline()['statuses'] #获取当前登录用户以及所关注用户(已授权)的微博

length = len(statuses)

print length

#输出了部分信息

for i in range(0,length):

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

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线