一.创建应用

创建应用的目的是获取app-key和app-secret,并设置授权回调页。
(1)获取app-key和app-secret
登陆微博开放平台创建应用http://open.weibo.com/apps/new?sort=web

应用名称以及后续的信息随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret。应用创建成功后可以在“我的应用”里面看到刚刚创建的应用的详细信息,在“应用信息”里面可以找到App Key和App Secret,这些信息在后面会用到。

(2)设置授权回调页
接着上面的打开“应用信息”里面的“高级信息”,然后点击“高级信息”里面的“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https://api.weibo.com/oauth2/default.html。至此第一步工作已完成。

二.安装微博SDK

(1)授权机制
http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
(2)下载微博SDK
微博 SDK支持多种语言,本文以python的sdk为例来说明操作,微博sdk链接http://open.weibo.com/wiki/SDK,点击进入之后选择自己熟悉语言的SDK即可,如下所示:

安装python版微博sdk:

直接在命令行下键入

pip install sinaweibopy3

或者去Gethub上边下载库

获取code、token信息

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

通过模拟登陆获取code

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 requestsresponse=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_tokenprint(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'] #获取当前登录用户以及所关注用户(已授权)的微博</span>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']

社交媒体爬虫------调用微博API获取微博内容相关推荐

  1. Python调用微博API获取微博内容

    一:获取app-key 和 app-secret 使用自己的微博账号登录微博开放平台(http://open.weibo.com/),在微博开放中心下"创建应用"创建一个应用,应用 ...

  2. JavaScript调用原生API获取手机型号

    跨平台技术简介 针对原生开发面临问题,人们一直都在努力寻找好的解决方案,而时至今日,已经有很多跨平台框架,根据其原理,主要分为三类: H5+原生(Cordova.Ionic.微信小程序) JavaSc ...

  3. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

  4. sina微博api:获取24小时内前20条用户的微博信息

    package weibo4j.examples; import java.util.List; import weibo4j.Status; import weibo4j.Weibo; import ...

  5. pyhton微博爬虫(3)——获取微博评论数据

    本文的主要目标是获取微博评论数据,具体包括微博评论链接.总评论数.用户ID.用户昵称.评论时间.评论内容.用户详情链接等. 实现代码如下所示: # -*- coding: utf-8 -*- &quo ...

  6. pyhton微博爬虫(2)——获取微博用户关注列表

    本文的主要目标是获取微博用户关注列表以及关注列表中各微博用户的ID.昵称.详情链接.粉丝数.关注数等关键信息. 实现代码如下所示: # -*- coding: utf-8 -*- "&quo ...

  7. 进阶1·调用高德API获取交通数据(多个URL访问,字典提取,while无限循环下的程序间断运行)

    调用高德开放API获取实时交通数据 想法及思路 现在大型网站都提供了好多开放API,根据这些开放API可以做一些比较有趣的东西,本次调用高德开放api实时获取你想知道的道路拥堵状况 工具及技术: Py ...

  8. wps解析json数据_通过WordPress HTTP API 获取json内容并解析

    WordPress 4.0的一个亮点就是JSON API的加入,今天我们提前来看看怎么获取JSON的内容并显示出来.过程就是用PHP获取远程JSON的内容,然后把获取到的JSON转化为PHP对象,然后 ...

  9. js调用高德API获取所在当前城市

    可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript">function getCurren ...

  10. vue 地理位置定位_Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

最新文章

  1. ViSP创建之VS工程详细创建步骤(命令行方式)
  2. Jenkins详细安装与构建部署使用教程(转)
  3. device eth0 does not seem to be present, delaying initialization
  4. tensorflow 显存 训练_【他山之石】训练时显存优化技术——OP合并与gradient checkpoint...
  5. LeetCode 24 两两交换链表中的节点
  6. iOS之深入解析少见却神奇的NSProxy类的多种使用
  7. 二维凸包 Graham's Scan
  8. mydate97设置时间
  9. mediasoup 安裝
  10. RabbitMQ系列(三)RabbitMQ交换器Exchange介绍与实践
  11. Speaker Recognition: Gaussian probabilistic LDA (PLDA)理解
  12. 这可能是目前最全的Redis高可用技术解决方案总结
  13. c++矩阵库eigen的使用方法
  14. NanoPi M1 Plus:Allwinner H3使用lichee源码编译Linux-3.4 BSP
  15. html/css表单美化
  16. 『危机领导力』告诉我们如何带好团队
  17. [jbb0523整理]压缩感知中的数学知识:NP-hard问题
  18. 暑假如何高效保护视力?保护视力的智能台灯
  19. 从0到1搭建大数据平台之开篇
  20. 计算机学院 储昭坤,计算机与信息学院“紫罗兰”团队开展志愿服务活动

热门文章

  1. 【ArcGIS微课1000例】0027:ArcGIS属性表(dbf)转Excel的4中方法
  2. ajax编辑教程,今天手动编写了一个简易的 ajax 发起器(JavaScript)
  3. unity2019汉化
  4. 《潮流时装设计——世界顶级时装CAD制板技巧》——1.2 国内外服装CAD的发展状况...
  5. 一键式安装Ubuntu 18.04和Win10双系统并超频的防坑指南
  6. ENVI 5.3软件安装教程(附带安装包获取方式)
  7. WhereHows解读
  8. 【光剑藏书轩2021】《表象与本质:类比,思考之源和思维之火》
  9. 005 Java反射面试题
  10. Moodle安装教程以及phpMyAdmin无法访问解决