python新浪微博数据爬取(tornado python3)

新浪微博:山寨版的twitter,各种粉丝的集散地,天朝人民的最爱,基本上网民都人手一个微博账号,所以使用新浪微博账号进行三方登录来提高用户登录体验就显得尤为重要,本次使用Python3+Tornado5来集成微博登录,记录一下,坑还是不少的。

首先注册微博开放平台:***/

选择微链接-》网站接入=>立即接入 新建一个应用

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

应用创建成功后,会立即跳转审核页面,需要填写一些资质,用来进行审核,其实这些审核字段都不用搭理,应用压根就不需要通过审核

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

只需要拿到appkey和appsecret即可,然后立即点击高级信息,填写回调网址

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

需要注意一点,目前新浪对127.0.0.1需要进行安全校验,所以回调路由填一个随机ip就可以了,不一定是真实的,主要为了应对新浪的安全监测,见下图:

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

那么新浪微博的登录逻辑很简单: 拼接url => 回调获取code => 利用code换取uid和access_token => 使用access_token获取用户信息

首先第一步,拼接url,这里我们使用Tornado写控制器

#新浪微博登录地址组合返回(第一步)class SinaFirstHandler(BaseHandler): def get(self,*args,**kwargs): #微博接口地址 weibo_auth_url = "***/oauth2/authorize" #回调网址 redirect_url = "http://127.0.0.1:8000/md_admin/weibo" #应用id client_id = "2636039333" #组合url auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id, re_url=redirect_url) self.write(auth_url)

第二步,回调获取code,并且换取access_token和uid

#新浪微博回调地址(第二步)class SinaBackHandler(BaseHandler): def get(self,*args,**kwargs): #获取回调的code code = self.get_argument('code') #微博认证地址 access_token_url = "***/oauth2/access_token" #参数 向新浪接口发送请求 re_dict = requests.post(access_token_url,data={ "client_id": '2636039333', "client_secret": "4e2fbdb39432c31dc5c2f90be3afa5ce", "grant_type": "authorization_code", "code": code, "redirect_uri": "http://127.0.0.1:8000/md_admin/weibo", }) re_dict = re_dict.text re_dict = eval(re_dict) print(re_dict.get('uid')) self.write(re_dict)

接下来的情况就有点操蛋了,因为新浪规定应用如果不通过审核,那么新浪有些接口无权限请求的,可以说你手里只有access_token和uid,却换不到别的东西,怎么办呢,没有人会闲的没事为了测试接口就去弄个营业执照,但是有一个曲线救国的方法,就是在测试信息页面来添加测试账号,添加好测试账号之后,就可以请求相应的接口

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

最后,利用手里的access_token和uid来获取当前用户的用户名

result = requests.get('***/2/users/show.json',params={'access_token':res['access_token'],'uid':res['uid']})result = json.loads(result.text)print(result['name'])

可以看到接口请求成功

使用Python3+Tornado5.1集成新浪微博三方登录(无需企业资质)

搞定收工。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 7月 19日 下午2:35
下一篇 2023年 7月 19日 下午2:41

相关推荐

  • 路由器设置方法(路由器设置方法水星)

    要设置路由器,您可以按照以下步骤进行操作: 连接路由器:将路由器的电源适配器插入电源插座,并使用网线将路由器的WAN(广域网)端口连接到您的宽带调制解调器(如光纤或电缆调制解调器)…

    互联网 2023年 6月 7日
  • pdf转word在线转换免费网页版

    PDF转Word在线怎么转换?这可能就是你在职场中经常遇到的问题之一,这里推荐5个PDF转Word在线免费转换网站,助力高效办公。 PDF怎么转换成Word 1.国产文档转换之光-…

    2023年 6月 19日
  • 淘宝2元都包邮是怎么做到的(淘宝两元包邮怎么做到的)

    长久以来,淘宝之所以被称作万能的淘宝,是因为在淘宝上我们几乎能找到任何东西,小到婴儿用品,大到寿终用品,各有对应你需要的价格,把你的一生安排得明明白白。 尽管淘宝的东西价格有高有低…

    2023年 3月 14日
  • tws和hifi的区别,支持hifi的tws

    聊到TWS耳机,你首先想到的是什么?苹果的AirPods、小米的xiaomi Buds系列、还是OPPO、漫步者等一众厂商的产品?点开京东搜索TWS耳机,你看到的商品或许会有一半来…

    2022年 12月 27日
  • 《快影》导入本地音乐教程

    快影app为用户提供了众多的音乐,可以直接设置添加到作品中。但是如果我们没有找到自己喜欢的歌曲,也可以从本地导入音频文件,然后作为视频的背景音哦!那么快影怎么导入本地音乐呢?下面小…

    互联网 2023年 4月 17日
  • 微信提取文字后如何修改文字

    #大有学问#这几天大家都在忙着写汽车征文。由于汽车征文奖励高。大家都拼尽全力。对于要求大家都是认真看、仔细研究。可能是太在意了,有的意思就理解错了。 比如要求是在话题下发文。有的友…

    2023年 4月 30日
  • 爱奇艺或者腾讯自动续费怎么关闭

    4月20日,据浙江消保委官方微信公众号消息,截至4月17日,爱奇艺、腾讯视频等11家视频、音频网站先后向浙江省消保委发来整改回复函,就4月8日浙江省消保委约谈会中提到的相关问题进行…

    2023年 1月 16日
  • java mysql数据库连接

    现在的开发已经很少使用到JDBC了,Mybatis和Hibernate框架已经把JDBC完美的封装,并映射到实体类,我们只需要一个简单的调用就可以完成很多工作,特别是Mybatis…

    2023年 7月 25日
  • 最近在微信中有没有增加新功能(微信更新不会影响使用吧)

    继密码、指纹和刷脸等支付方式后,又一项新型支付方式被解锁。 10月14日,记者注意到“微信刷掌支付”小程序已悄悄上线,开发者为腾讯旗下财付通支付科技有限公司,介绍语为“你的手掌就代…

    2022年 12月 25日
  • ppt如何分栏排版

    这篇文章就来带大家认识分栏排版法,我相信当你看完文章后,也能做出这样的幻灯片: 好了,废话不多咱,们直接进入正题。 什么叫分栏排版法呢? 很简单,其实就是将版面划分出不同的区域,在…

    2023年 4月 28日