现在很多人都在玩微博,不少资源博主都靠发资源获得大量粉丝。我自己也尝试过几次,但是我还是太懒,不想每天一条一条得去发,于是就寻思着怎么用强大的Python自动发微博。研究了两个下午,总算是做出来了,可以实现自动爬取brainyquote每日一句名人引言,并且自动上传图片,然后发表微博!这里主要记录一下如何通过微博的API,用Python进行认证并实现自动发微博的过程。

第一,创建应用

要使用微博的API,需先要有个应用。随便是个应用就行,可以到这里注册一个站内应用应用注册。注册应用的主要目的是要获得MY_APPKEY 和MY_ACCESS_TOKEN,如图所示

第二,获取access_token

API的调用需要登录授权获得access_token。这个过程需要分为两步进行,首先获取所需要的code,然后再去获取access_token。

①调用https://api.weibo.com/oauth2/authorize接口,获得code。

该接口有三个必须的参数:

•client_id:申请应用时分配的AppKey。

•redirect_url:就是创建应用中设置的回调地址

•response_type:响应类型,可设置为code

具体做法,就是在浏览器打开https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code。

该方法会转到授权页面,授权之后会转到http://www.example.com/response&code=CODE,记录下该url中的CODE。

②调用https://api.weibo.com/oauth2/access_token接口,获得access_token

该接口有如下必须的参数:

•client_id:申请应用时分配的AppKey。

•client_secret:申请应用时分配的AppSecret。

•grant_type:请求的类型,填写authorization_code

•code:调用authorize获得的code值。

•redirect_uri: 就是创建应用中设置的回调地址

具体做法就是构建一个POST请求,再在返回的数据中找到access_token,保存下来。具体的Python代码:

Shell

import requests

url_get_token = "https://api.weibo.com/oauth2/access_token"

#构建POST参数

payload = {

"client_id":"填入你的",

"client_secret":"填入你的",

"grant_type":"authorization_code",

"code":"上面获得的CODE",

"redirect_uri":"你的回调用地址"

}

#POST请求

r = requests.post(url_get_token,data=payload)

#输出响应信息

print r.text

1

2

3

4

5

6

7

8

9

10

11

12

13

14

importrequests

url_get_token="https://api.weibo.com/oauth2/access_token"

#构建POST参数

payload={

"client_id":"填入你的",

"client_secret":"填入你的",

"grant_type":"authorization_code",

"code":"上面获得的CODE",

"redirect_uri":"你的回调用地址"

}

#POST请求

r=requests.post(url_get_token,data=payload)

#输出响应信息

printr.text

如果正常的话,会返回下面这样的json数据:

Shell

{"access_token":"我们要记下的","remind_in":"157679999","expires_in":157679999,"uid":"1739207845"}

1

{"access_token":"我们要记下的","remind_in":"157679999","expires_in":157679999,"uid":"1739207845"}

根据返回的数据,access_token的值就是我们要的。其中remind_in的值是access_token的有效期,单位为秒,我们可以看到,这个时间有3、4年之久,足够我们用了。

有了access_token,我们就可以利用微博的各种接口干很多事啦!

发表文字微博

调用接口https://api.weibo.com/2/statuses/share.json

请求必须用POST方式提交,有上传图片时需要采用multipart/form-data编码方式,没有上传图片则采用正常编码方式

其中必须的:

•access_token: 就是我们上一步获得的access_token

•status:用户分享到微博的文本内容,必须做URLencode,内容不超过140个汉字,文本中不能包含“#话题词#”,同时文本中必须包含至少一个第三方分享到微博的网页URL,且该URL只能是该第三方(调用方)绑定域下的URL链接,绑定域在“我的应用 - 应用信息 - 基本应用信息编辑 - 安全域名”里设置。

具体代码:

Shell

#发表文字微博的接口

url = "https://api.weibo.com/2/statuses/share.json"

#构建POST参数

payload = {

"access_token":"填入你的",

"status":"Python发送微博测试!https://www.itengli.com"

}

#POST请求,发表文字微博

r = requests.post(url,data = payload)

1

2

3

4

5

6

7

8

9

#发表文字微博的接口

url="https://api.weibo.com/2/statuses/share.json"

#构建POST参数

payload={

"access_token":"填入你的",

"status":"Python发送微博测试!https://www.itengli.com"

}

#POST请求,发表文字微博

r=requests.post(url,data=payload)

发表图片微博

Shell

#发表图文微博的接口

url = "https://api.weibo.com/2/statuses/share.json"

#构建文本类POST参数

payload={

"access_token":"2.008xxxxxxxxxxxxxxxxxxxxxx",

"status":"Python发送微博测试!https://www.itengli.com"

}

#构建二进制multipart/form-data编码的参数

files={

"pic":open("logo.png","rb")

}

#POST请求,发表微博

r = requests.post(url,data=payload,files = files)

1

2

3

4

5

6

7

8

9

10

11

12

13

#发表图文微博的接口

url="https://api.weibo.com/2/statuses/share.json"

#构建文本类POST参数

payload={

"access_token":"2.008xxxxxxxxxxxxxxxxxxxxxx",

"status":"Python发送微博测试!https://www.itengli.com"

}

#构建二进制multipart/form-data编码的参数

files={

"pic":open("logo.png","rb")

}

#POST请求,发表微博

r=requests.post(url,data=payload,files=files)

python微博_Python自动化发微博相关推荐

  1. python发微博_Python自动化发微博(使用原生API)

    虽然有第三方的Python库,但也只是对request请求作简单的封装.所以以下将不使用第三方库. 创建应用 要使用微博的API,需先要有个应用.随便哪种应用都行,注册应用的主要目的是要获得App K ...

  2. jsoup实现微博登陆及发微博(带验证码)

    前言 很早之前用别的语言写过一次微博登陆,现在改成java版,主要是为了验证jsoup的强大,一款完全可胜任http请求和html解析的工具.抓包,抽取js的方法这里就不在赘述. 工具 jsoup-1 ...

  3. python爬虫登录微博_python爬虫-模拟微博登录

    微博模拟登录 这是本次爬取的网址:https://weibo.com/ 一.请求分析 找到登录的位置,填写用户名密码进行登录操作 看看这次请求响应的数据是什么 这是响应得到的数据,保存下来 exect ...

  4. python爬虫登录微博_python爬虫-模拟微博登录功能

    微博模拟登录 这是本次爬取的网址:https://weibo.com/ 一.请求分析 找到登录的位置,填写用户名密码进行登录操作 看看这次请求响应的数据是什么 这是响应得到的数据,保存下来 exect ...

  5. Python 教你自动发微博,每日一句英语

    作者:周萝卜 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知 ...

  6. Python 教你自动发微博,每日实现一句心灵鸡汤

    作者 | 周萝卜 出品 | 萝卜大杂烩 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的,只需 ...

  7. 爬取微博好友所发微博制作词云

    打开一个关注者的微博页面,打开开发者工具,选择图中两个地方 刷新页面,向下滚动,中途会出现正在加载,直到最后会出现下一页, 这时看开发者工具,这时真正请求的URL才出现 然后找到Cookies,复制修 ...

  8. 自动化办公python脚本_Python自动化办公

    在公司购买的OA系统上,很多功能都是软件商开发好的,如果有什么自定义的需求,也很难实现.现实情况下需要将一个工单的各类信息汇总整理为一份Excel,看似简单的需求,却需要在OA系统上反复点击多次,人工 ...

  9. python怎么登录微博并发微博_Python代码登录新浪微博并自动发微博

    前言 对于很少玩微博@張行之_的我来说,微博内容少的可怜.所以本人就想:能不能写个成功程序来帮我发微博.这个程序要满足以下要求: 自动化,自动登录微博,自动发微博. 微博内容要有意义,不能是随机生成的 ...

最新文章

  1. Object-C 有私有变量?私有方法?
  2. PyQt5 技术篇-通过参数控制Dialog窗口增加?问号按钮
  3. C++ Function语意学
  4. Batch request processing in backend
  5. 【转】如何在编程生涯中有一个好的开端
  6. java 计时器归零_java - 如何每15秒运行一次计时器并取消并重新启动
  7. stl Vecotr中遍历方法
  8. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...
  9. 一些网络爱好者常用的网络工具
  10. 用计算机画图截图图片,如何快速截图保存图片
  11. 科学计算matlab尔雅答案,科学计算与MATLAB语言超星尔雅最新答案大全
  12. 大学课程 | 《软件工程》知识点超详细总结归纳
  13. PN结的形成及其单向导电性
  14. ARM开发比51开发高级吗—嵌入式就业技能分类
  15. Axure如何实现标签切换功能
  16. HTML春节贺卡,HTML5+CSS3实现春节贺卡
  17. bgproperties属性
  18. Ubuntu 阿里源更新 amp;amp; nvidia驱动安装 amp;amp; cuda 安装
  19. 剪辑视频怎么学?手把手教你自学视频剪辑
  20. 大数乘法(快速傅立叶变换)上

热门文章

  1. 干货-任正非号召华为员工学习:认识5G,发展5G
  2. python编程一球从100米_【Python3练习题 015】 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?...
  3. Python教程——变量和运算符
  4. 如何在Microsoft Teams视频会议中看起来像土豆
  5. 奇遇网以讨论电脑技术和互联网科技资源
  6. EarlyStopping技术
  7. 第1056期机器学习日报(2017-08-09)
  8. JavaWeb使用百度云文字识别上传图片内容
  9. Ps 参考线 + 帮助裁剪和 选区
  10. 一个开源的论坛系统AstalPathTalk