python 自动发微博_python3实现古城钟楼每个时辰自动发微博
古城钟楼
这个微博从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实现古城钟楼每个时辰自动发微博相关推荐
- python微博自动评论转发_python3 调用新浪微博api实现自动发布评论
新浪微博开放平台提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用.但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容. ...
- python怎么登录微博并发微博_Python代码登录新浪微博并自动发微博
前言 对于很少玩微博@張行之_的我来说,微博内容少的可怜.所以本人就想:能不能写个成功程序来帮我发微博.这个程序要满足以下要求: 自动化,自动登录微博,自动发微博. 微博内容要有意义,不能是随机生成的 ...
- python 扫码签到_python3之51cto自动定时签到
前言 之前写过一遍,pyhton结合图灵机器人自动回复,之前51cto是使用网页签到,但是已经失效了,微信签到的原理和之前的机器人差不多的,不过是使用了python的itchat模块,结合定时功能,自 ...
- python爬虫实验总结_python3爬虫总结(共4篇).docx
python3爬虫总结(共4篇) 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的 ...
- hacker:Python通过对简单的WIFI弱口令实现自动实时破解
hacker:Python通过对简单的WIFI弱口令实现自动实时破解 目录 输出结果 实现代码 输出结果 实现代码 #Python通过对简单的WIFI弱口令实现自动实时破解 import sys im ...
- python 鼠标 自动点击_鼠标隔段时间自动点击屏幕
知识点:Python库及简单定时器的使用 1. 鼠标自动点击屏幕代码 (1). 首先 pip install pymouse (2). 运行代码出现:ModuleNotFoundError: No m ...
- python爬虫 豆瓣影评的爬取cookies实现自动登录账号
python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号-- 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具 ...
- Python爬虫拓展应用:最新版本问卷星自动刷,包括解决智能验证、滑块等问题
Python爬虫拓展应用: 最新版本问卷星自动刷,包括:解决智能验证.滑块等问题 Python爬虫自动刷"问卷星"网站问卷 爬虫运行准备 爬虫运行代码 代码解释 参考博客 Pyth ...
- python+selenium+pytesseract实现自动识别简单验证码,并且自动登陆网站
文章目录 功能介绍 首先安装需要的库 编写代码 功能介绍 本文章实现自动识别验证码并且自动登陆网站,完全不需要人工操作 Python版本:3.6 Selenium:selenium 是一个用于 Web ...
最新文章
- python基础===Python 代码优化常见技巧
- 我是如何阅读编程书的
- 黄仁勋评价股东孙正义
- 如何更改已生成的APK的APP名字?
- 阿里云ECS——[您的云服务器(xxx.xxx.xxx.xxx)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(TCP:6379)的访问]解决方案
- 关于对象的引用作为参数,可以直接访问私有成员的问题
- 离线计算成本节省的神兵利器
- Java之消息摘要之commons codec
- okhttp初识拦截器
- golang 之 import 和 package 的使用
- ViewDragHelper详解
- Mybatis学习随笔
- 线性代数知识荟萃(4)——矩阵相抵
- 【JAVA】Collections.sort()实现动态数组自定义排序
- j2me解决模拟器乱码
- 英语词根词缀总结整合版
- link标签的主要用法
- iOS打包导出时出现Missing iOS Distribution signing identity问题
- 程序员的年终总结,各种版本各种残
- 9.6 多元函数微分学的几何应用
热门文章
- 芝加哥大学计算机科学,芝加哥大学计算机科学排名第32(2018年TFE美国排名)
- 轻音乐底部评论中的美文美句
- Matlab2017a之前版本的 MATLAB MinGW-w64 C/C++ Compiler4.9.2下载
- Qt调起外部应用并嵌入界面
- 小米副总裁崔宝秋离职 原掌管的清河大学并入人力资源部
- bigsur cdr文件_macOS BigSur 11.0.1(20B29)-原版DMG黑苹果镜像
- 【玩点不一样】你用别人CDN资源多了,有没有想过自己也搭建一个CDN玩玩?
- 我们每天自律、认真学习的最终目的是什么?
- 2021年中国航空飞机数量、航空器数量及航空维修主要企业经营对比分析[图]
- linux用户目录设置权限设置,为linux目录设置多个用户权限