古城钟楼

这个微博从2011年10月26日起,坚持每天都在微博上按干支计时的每个时辰发送“铛”声,时间分秒不差,这样的微博样式一直坚持了一年多!而且所有微博除了“铛”和多个“铛”字外,并无其他内容,页面非常整齐、干净、纯粹。目前,该微博已经有了超过80万的粉丝!

而这样的另类微博自然戳中了广大网友的小店,网友纷纷排气长队献上各种神回复。网友不禁赞叹古城钟楼为“史上最无聊和最有毅力微博”。

但是稍微有点技术的人就应该知道,这并不是人工手法的。今天我们就来利用python3模仿这个古城钟楼

需要发微博,自然需要先登录微博

首先还是得先去分析微博的登录过程,首先访问微博的手机版登录页面https://passport.weibo.cn/signin/login,随便输入用户名密码登录

分析登陆过程

我们多打开几个窗口随便输入几次,就会发现除了username跟password会变其他都不会变,所以我们只需要直接将用户名密码与这些写死的参数拼接发送给登录地址就行

登录微博

#登录

def login(code=0):

login_data = configparser.ConfigParser()

login_data.read("user.ini") #将用户名密码放在user.ini配置文件

username = login_data.get("LoginInfo", "email")

password = login_data.get("LoginInfo", "password")

login_url = 'https://passport.weibo.cn/sso/login'

# 构造登录参数

params = {

'username':username,

'password':password,

'savestate':'1',

'r':'',

'ec':'0',

'pagerefer':'',

'entry':'mweibo',

'wentry':'',

'loginfrom':'',

'client_id':'',

'code':'',

'qq':'',

'mainpageflag':'1',

'hff':'',

'hfp':''

}

params = parse.urlencode(params).encode('utf-8')

req = request.Request(login_url,params,method="POST")

res = request.urlopen(req)

result = res.read().decode('utf-8')

login_result = json.loads(result)

if login_result['msg'] == '': #如果没有报错信息,说明登录成功

print('登陆成功')

return True

else:

print(login_result['msg'])

return False

获取当前时辰,拼接当前时辰的微博

def get_content():

time_data = ['子时','丑时','寅时','卯时','辰时','巳时','午时','未时','申时','酉时','戌时','亥时']

now = int(time.strftime('%H',time.localtime(time.time())))

now_tm = now%12

res_str = ''

for x in range(now_tm):

res_str += '铛~'

res_str = '【'+time_data[math.floor(now/2)] + '】' + res_str

return res_str

我们接着分析发微博过程我们首先点击发微博打开的地址是:https://m.weibo.cn/compose

发微博页面

然后随便输入微博内容,点击发送,抓包发现,发送微博提交的地址是:https://m.weibo.cn/api/statuses/update,提交的内容为content=sda&st=ba1f65,其中sda为自己随意输入的微博内容,然后我们再去分析发送发微博的页面,发现源码中存在一个st参数,于是我们需要先去抓取这个st参数才能拼接发送

发送地址

st参数

获取st参数

def get_st():

url = 'https://m.weibo.cn/compose'

req =request.Request(url)

res = request.urlopen(req)

html = res.read().decode('utf-8')

return re.search("st: '(.*)'", html).group(1)

最后是直接将微博内容与st参数拼接发送即可

发微博

def weibo(content):

st = get_st()

add_weibo_url = 'https://m.weibo.cn/api/statuses/update'

# 构造登录参数

params = {

'content':content,

'st':st

}

params = parse.urlencode(params).encode('utf-8')

req =request.Request(add_weibo_url,params,method="POST")

res = request.urlopen(req)

html = res.read().decode('utf-8')

print(html)

然后测试效果

weibo.gif

python 自动发微博_python3实现古城钟楼每个时辰自动发微博相关推荐

  1. python微博自动评论转发_python3 调用新浪微博api实现自动发布评论

    新浪微博开放平台提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用.但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容. ...

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

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

  3. python 扫码签到_python3之51cto自动定时签到

    前言 之前写过一遍,pyhton结合图灵机器人自动回复,之前51cto是使用网页签到,但是已经失效了,微信签到的原理和之前的机器人差不多的,不过是使用了python的itchat模块,结合定时功能,自 ...

  4. python爬虫实验总结_python3爬虫总结(共4篇).docx

    python3爬虫总结(共4篇) 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的 ...

  5. hacker:Python通过对简单的WIFI弱口令实现自动实时破解

    hacker:Python通过对简单的WIFI弱口令实现自动实时破解 目录 输出结果 实现代码 输出结果 实现代码 #Python通过对简单的WIFI弱口令实现自动实时破解 import sys im ...

  6. python 鼠标 自动点击_鼠标隔段时间自动点击屏幕

    知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2). 运行代码出现:ModuleNotFoundError: No m ...

  7. python爬虫 豆瓣影评的爬取cookies实现自动登录账号

    python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号-- 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具 ...

  8. Python爬虫拓展应用:最新版本问卷星自动刷,包括解决智能验证、滑块等问题

    Python爬虫拓展应用: 最新版本问卷星自动刷,包括:解决智能验证.滑块等问题 Python爬虫自动刷"问卷星"网站问卷 爬虫运行准备 爬虫运行代码 代码解释 参考博客 Pyth ...

  9. python+selenium+pytesseract实现自动识别简单验证码,并且自动登陆网站

    文章目录 功能介绍 首先安装需要的库 编写代码 功能介绍 本文章实现自动识别验证码并且自动登陆网站,完全不需要人工操作 Python版本:3.6 Selenium:selenium 是一个用于 Web ...

最新文章

  1. C#命名规范 C#控件的缩写大全
  2. Web安全之代码执行漏洞
  3. 光耦驱动单向可控硅_光耦是什麽?
  4. 四.树莓派更改输入法与支持中文
  5. 那个说技术本身并不可耻的快播王欣回来了!
  6. 系统学习机器学习之正则化(二)
  7. IOS开发之Bug--关于UIImageView的使用
  8. J2EE项目架构最佳实践
  9. Unity2018引用System.Windows.Forms.dll发布报错
  10. Mysql启动之报错:The server quit without updating PID file
  11. 微信怎么录屏聊天记录?这两个方法值得收藏!
  12. android app 控制背光,android7.1+msm8937背光控制
  13. 防范于未“燃”|涂鸦智慧社区推出“黑科技”,电瓶车禁入电梯智慧方案
  14. VLINK 的更新版本
  15. ThinkPHP6 验证码(点击刷新)
  16. 安卓系统怎么安装软件_【图文】安卓系统手机如何下载安装APP
  17. 安卓Android游戏类ASO优化策略,android的aso优化
  18. Python+Selenium自动化测试项目实战
  19. 洛谷P1786 帮贡排序(冒泡排序法)
  20. 为什么视频方案没有取代无线地磁

热门文章

  1. 腾讯云tcp架构考试涉及到哪些知识点?腾讯云是什么?
  2. 关于实现uni-app项目在APP端使用微信支付功能
  3. js函数求两个数的和
  4. Winds Liunx Docker 安装Redis
  5. Arduino通信协议设计
  6. 一个备库中ORA错误信息的分析 (r6笔记第69天)
  7. 东风本田思域首保日记 - 20190417@广州
  8. 用户数据报协议UDP
  9. recv_contxt = std::string( (char*)recv_buffer+sizeof(Req),pReq->context_len-86);
  10. 【算法修炼】台球碰撞 C