一个后台服务的入口,需要通过python api访问新浪微博,实现了token存储及自动更新。现分享出来,有需要的可以拿去用,自己增加业务处理。
https://github.com/wtmmac/Sina-weibo-api-access-by-python
# -*- coding: utf-8 -*-
#/usr/bin/env python
__version__ = '1.0'
__author__ = 'http://weibo.com/wtmmac'
'''
Demo for sinaweibopy
主要实现token自动生成及更新
适合于后端服务相关应用
'''
# api from:http://michaelliao.github.com/sinaweibopy/
from weibo import APIClient
import sys, os, urllib, urllib2
from http_helper import *
from retry import *
try:
import json
except ImportError:
import simplejson as json
# setting sys encoding to utf-8
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
# weibo api访问配置
APP_KEY = '' # app key
APP_SECRET = '' # app secret
CALLBACK_URL = '' # callback url 授权回调页,与OAuth2.0 授权设置的一致
USERID = '' # 微博用户名
USERPASSWD = '' # 用户密码
# token file path
save_access_token_file = 'access_token.txt'
file_path = os.path.dirname(__file__) + os.path.sep
access_token_file_path = file_path + save_access_token_file
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
def make_access_token():
'''请求access token'''
params = urllib.urlencode({'action':'submit','withOfficalFlag':'0','ticket':'','isLoginSina':'', \
'response_type':'code', \
'regCallback':'', \
'redirect_uri':CALLBACK_URL, \
'client_id':APP_KEY, \
'state':'', \
'from':'', \
'userId':USERID, \
'passwd':USERPASSWD, \
})
login_url = 'https://api.weibo.com/oauth2/authorize'
url = client.get_authorize_url()
content = urllib2.urlopen(url)
if content:
headers = { 'Referer' : url }
request = urllib2.Request(login_url, params, headers)
opener = get_opener(False)
urllib2.install_opener(opener)
try:
f = opener.open(request)
print f.headers.headers
return_callback_url = f.geturl
# print f.read()
except urllib2.HTTPError, e:
return_callback_url = e.geturl()
# 取到返回的code
code = return_callback_url.split('=')[1]
#得到token
token = client.request_access_token(code)
save_access_token(token)
def save_access_token(token):
'''将access token保存到本地'''
f = open(access_token_file_path, 'w')
f.write(token['access_token']+' ' + str(token['expires_in']))
f.close()
@retry(1)
def apply_access_token():
'''从本地读取及设置access token'''
try:
token = open(access_token_file_path, 'r').read().split()
if len(token) != 2:
make_access_token()
return False
# 过期验证
access_token, expires_in = token
try:
client.set_access_token(access_token, expires_in)
except StandardError, e:
if hasattr(e, 'error'):
if e.error == 'expired_token':
# token过期重新生成
make_access_token()
else:
pass
except:
make_access_token()
return False
if __name__ == "__main__":
apply_access_token()
# 以下为访问微博api的应用逻辑
# 以接口访问状态为例
status = client.get.account__rate_limit_status()
print json.dumps(status)
分享到:
相关推荐
在本资源中,我们主要探讨的是如何利用Python编程语言实现一个针对新浪微博的网络爬虫,目的是抓取微博数据,包括微博的文字内容、图片以及视频。爬虫是数据挖掘的重要工具,它能自动化地从互联网上收集信息,对于...
本教程将详细介绍如何使用新浪微博的SDK(Software Development Kit)结合Python编程语言来实现自动发送带图的微博。这个过程涉及到的知识点包括微博API的使用、Python编程基础、文件操作以及网络请求。 首先,你...
在这个案例中,我们关注的是一个专门针对新浪微博的爬虫项目,使用Python编程语言实现。Python因其丰富的库支持和简洁的语法,成为了编写爬虫的理想选择。下面我们将深入探讨这个主题,解析相关知识点。 首先,我们...
【标题】:“新浪微博爬虫,用python爬取新浪微博数据.zip” 这个标题暗示了一个关于网络爬虫的项目,其中重点是使用Python编程语言来抓取新浪微博平台上的数据。爬虫是自动化提取网页信息的一种工具,它可以帮助...
**Python-爬取新浪微博信息** 在信息技术领域,网络爬虫是一种自动提取网页数据的程序,它们可以帮助我们收集、分析大量的互联网信息。在这个项目中,我们将专注于使用Python来爬取新浪微博的数据,尤其是账户下的...
这是新浪微博爬虫,采用python+selenium实现。 免费资源,希望对你有所帮助,虽然是傻瓜式爬虫,但是至少能运行。同时rar中包括源码及爬取的示例。 参考我的文章: ...[python爬虫] Selenium爬取新浪微博内容及用户...
在本项目中,我们利用Scrapy来爬取新浪微博的用户信息、用户的微博内容以及这些微博的评论和转发,这涉及到网络爬虫的基本原理、Scrapy组件的使用、网页解析以及数据存储等多个知识点。 首先,了解网络爬虫的基本...
本主题聚焦于使用Python来爬取移动端的新浪微博信息。以下是对这一知识点的详细阐述: 首先,我们需要理解Python为何适合网络爬虫。Python语言具有丰富的库支持,如BeautifulSoup、Requests和Scrapy,这些库简化了...
本项目"新浪微博爬虫"就是一个很好的例子,它展示了如何利用Python来抓取新浪微博上的数据。 首先,我们需要了解网络爬虫的基本原理。网络爬虫通过模拟浏览器发送HTTP请求到目标网站,然后解析返回的HTML或JSON等...
传统的通过官方API接口获取数据的方法因受限而难以应用,本文提出了一种基于Python的多线程爬虫技术,用于高效地获取新浪微博用户数据。 #### 2. Scrapy多线程爬虫框架 Scrapy是一个用于爬取网站数据和提取结构性...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
今天我们将聚焦于“新浪微博2模拟登陆”这一主题,学习如何通过编程方式模拟登录并获取AccessToken,以便进行自动化操作或者数据分析。 首先,我们需要了解什么是模拟登陆。模拟登陆是指通过编程代码来模拟用户在...
以上就是使用Python 3.7的`requests`库模拟新浪微博登录的概述和实现过程。实际应用中,你还需要处理更多的细节,比如错误处理、验证码的处理(如果有的话)以及网络异常等。确保始终遵循最佳实践,以保证代码的安全...
再者,针对社交媒体平台如新浪微博的API(Application Programming Interface)也可能被用于收集这些表情。API允许开发者获取平台上的公开数据,例如用户发布的微博、图片等。通过调用API接口,开发者可以高效地获取...
本文将深入探讨“新浪微博爱情表白代码”这一主题,它涉及到微博的登录机制、微博发送功能以及可能包含的创意编程实践。 首先,让我们关注“微博登录”这一环节。微博登录通常涉及到OAuth协议,这是一个授权框架,...
本文将深入探讨如何使用Python等编程语言进行新浪微博评论的抓取。首先,我们要明确的是,抓取网页数据时需遵循网站的robots.txt协议,并尊重用户隐私,合法合规地进行操作。 标题“新浪微博评论抓取”提示我们,这...
总之,这个“新浪微博爬虫”项目提供了一个学习Python网络爬虫技术,特别是模拟登录和动态内容抓取的实战案例。通过深入理解并实践这个项目,不仅可以掌握Python爬虫的基本技巧,还能提升对网络数据抓取的理解和应用...