定时运行python脚本云端_SAE部署Python-让云端自动运行Python代码

本文介绍如何利用Python编写自动发送微博的程序,并部署到新浪SAE平台实现定时离线发送。通过获取Cookies并使用requests库发送POST请求完成微博发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写过模拟登录新浪微博的帖子,然而我并没有去爬过微博的数据,觉得有点浪费,于是就想写一个代码来发微博。写完之后觉得如果能自动发微博就好了,但是我又不可能24小时开始(晚上12点后还会断网),也没有vps(穷学生狗),找过几个免费vps未果,然后想到之前用过新浪SAE,就想能不能在上面试试。

试了一天左右终于让我试出来了!!

 

基本实现了:

1、定时发送,这里是定时半小时

2、离线自动,基于sae,无需开电脑blabla

但是也有不完美的地方:本地我可以直接模拟登录,但是把代码放到sae上死都不能登录成功!最后没办法,只能本地获取cookies,然后放到sae上!也不知道cookies的失效时长,如果失效了还需要本地再获取,再放上去!

这里就说说部署的步骤吧!

发送微博的代码

posturl='http://weibo.com/aj/mblog/add?_wv=5&__rnd='#+时间戳

headers={'Host':'d.weibo.com','User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0','Referer':'http://d.weibo.com/?from=signin'}

data={'text':'python test', #这里就是要发送的内容

'pic_id':'','rank':0,'rankid':'','_surl':'','hottopicid':'','location':'home','module':'stissue','_t':0}#通过post的方式发送微博,cookies就是第一步获取的cookies

requests.post(posturl,headers=headers,data=data,cookies=cookies)

这就是一个最简单的发送微博的代码,其中的posturl最后要加的时间戳,是通过get这个地址

weibo&callback=sinaSSOController.preloginCallBack&su=&rsakt=mod&client=ssologin.js(v1.4.18)

获得的servertime。不了解的可以看我模拟登录微博的文章。

3. 部署sae

sae地址:http://sae.sina.com.cn/

使用微博账号登录。登录以后,创建新应用

 

 

创建好之后,点击应用名字进行管理应用。

 

然后是“代码管理”

 

选择SVN

 

创建版本

 

然后是“编辑代码”

 

先编辑config.yaml:

name: testweibo111

version:1cron:-description: cron_test

url:/index.wsgi

schedule:"*/30 * * * *"

url代表运行index.wsgi

schedule: "*/30 * * * *"代表每30分钟运行一次。

更多设置看

然后把编辑index.wsgi

主要是把Python代码放进去.先看一下最简单的代码:

import sae#!!!

def application(environ, start_response):#!!!

start_response('200 ok', [('content-type', 'text/plain')])#!!!

return ['Hello, SAE!']

application=sae.create_wsgi_app(app)#!!!

打开地址就可以看到:

 

尾部跟着#!!!的都是不可缺少的!除了这个区别之外,其他就跟使用IDE编辑脚本是一样的!可以随时打开网址来查看结果,如果代码出错,也能看到哪里出错了。比如:

设置完这些以后,sae就会自动运行Python代码了!这是我的微博截图,可以看到结果:

==========================================

其实我上面讲述的还不是很完整,因为有些东西我也不太懂,展开来讲会废话很多,比如SAE的Python有的第三方库需要自己打包上去。。这里我没有去讲,因为我会把全部代码放出来,自己研究去~

===========================================

如果不是很懂我上面的过程,可以直接把我的程序导入到你的sae app上面去。

记得修改config.yaml把名字改为你app名字

然后修改index.wsgi把cookies修改为你的cookies。

the end!!

ps:其实这不仅仅可以用来自动发微博,挖掘一下你的脑洞,就可以发现这还可以用来做爬虫,免费的sae程序有5G的免费配额,用来储存数据也够了~

<think>嗯,用户现在需要为本科毕业论文设计一个边缘计算方案,使用已有的硬件,包括移远BC95 NB-IoT模组、SIMCOM A7670C 4G模组、北斗定位ATGM336H、OBD-II ELM327,以及ThingsBoard物联网平台。首先,我得理解每个硬件的功能和它们在边缘计算中的角色。 首先,边缘计算的核心是在数据源附近处理数据,减少云端传输的延迟和带宽压力。用户提到的硬件涉及通信模块(NB-IoT和4G CAT.1)、定位模块(北斗)、以及车辆诊断的OBD-II解析芯片。需要将这些设备的数据在边缘端进行处理,然后上传到ThingsBoard平台。 移远BC95是NB-IoT模块,适合低功耗、低频次的数据传输,比如环境监测。而SIMCOM A7670C是4G CAT.1,适合需要较高数据传输速率的场景,比如实时监控。北斗模块用于定位,OBD-II用于车辆数据采集。需要确定这些设备如何协同工作,以及在边缘端进行哪些计算。 接下来要考虑的是边缘计算方案的选型。用户可能希望方案简单易实现,适合毕业设计。常见的边缘计算框架有EdgeX Foundry、AWS IoT Greengrass、Azure IoT Edge等,但考虑到ThingsBoard的集成,可能需要选择兼容性好的方案。另外,使用Python或C/C++在微控制器或单板计算机(如树莓派)上实现边缘逻辑也是一种选择。 ThingsBoard支持MQTT和HTTP协议,因此需要确保边缘设备能够通过这两种协议上传数据。边缘计算节点可能需要运行在树莓派这样的设备上,负责数据预处理、过滤、聚合等操作,再发送到ThingsBoard。 对于各个模块的具体整合: 1. BC95和A7670C负责通信,根据数据量选择合适的模块。例如,BC95用于发送低频的传感器数据,A7670C处理需要实时性的数据。 2. 北斗模块提供位置信息,边缘节点可以处理位置数据,比如计算移动轨迹或地理围栏。 3. OBD-II ELM327采集车辆数据,如车速、发动机转速等,边缘节点可以实时分析这些数据,检测异常或生成统计信息。 4. 边缘节点需要运行轻量级的数据处理程序,可能使用Python脚本,因为开发快速,适合毕业论文的时间限制。 还需要考虑硬件之间的连接方式,比如通过串口或GPIO与树莓派连接,编写相应的驱动或使用现有库。例如,使用Pythonpyserial库读取串口数据,处理后再通过MQTT发送到ThingsBoard。 另外,数据格式的统一也很重要。边缘节点处理后的数据需要符合ThingsBoard的数据模型,可能需要转换为特定的JSON格式。同时,边缘计算的任务可能包括数据压缩、缓存、本地存储等,确保在网络不稳定时数据不丢失。 安全性方面,需要考虑数据传输的加密,比如使用TLS/SSL,但毕业设计中可能简化处理,先保证功能实现。 最后,整个系统的集成测试,确保各个模块协同工作,数据能正确上传到ThingsBoard,并能在平台进行可视化展示。用户可能需要展示实时数据、历史数据查询、报警触发等功能,这些都可以通过ThingsBoard的仪表盘实现。 总结来说,边缘计算方案需要结合硬件能力,选择合适的边缘节点硬件(如树莓派),使用Python进行数据处理,通过MQTT上传到ThingsBoard,并实现基本的数据处理功能如过滤、聚合、简单分析等,满足毕业设计的需求。</think>### 边缘计算方案设计与实现建议 #### 一、硬件能力与边缘计算任务分配 1. **移远BC95 NB-IoT模块** - 适用场景:低功耗、低频次数据传输(如温度/湿度传感器数据)$E_b = P \cdot t$[^1] - 边缘任务:数据压缩、异常阈值过滤(当$|x-\mu| > 3\sigma$时触发上传) 2. **SIMCOM A7670C 4G模块** - 适用场景:实时视频流传输(建议分辨率$1280 \times 720$@15fps) - 边缘任务:关键帧提取(基于$H.264$的I帧识别) 3. **ATGM336H北斗模块** - 定位精度:水平精度$2.5m$(CEP50),数据格式$GPGGA$ - 边缘任务:轨迹平滑处理(卡尔曼滤波$X_k = AX_{k-1} + BU_k + W_k$) 4. **ELM327 OBD-II** - 支持协议:ISO15765-4(CAN), SAE J1850 PWM - 边缘任务:故障码实时解析(DTC格式$P0xxx$过滤) #### 二、系统架构设计 $$ \begin{cases} \text{边缘层} & \text{(树莓派4B+Python3.9)} \\ \text{网络层} & \text{(MQTT over TLS1.3)} \\ \text{平台层} & \text{(ThingsBoard v3.4)} \end{cases} $$ ```python # 边缘数据处理示例(Python代码) import paho.mqtt.client as mqtt def on_obd_message(client, data, msg): rpm = parse_obd(msg.payload) # OBD解析 if rpm > 4000: # 边缘告警判断 send_alert("EngineOverSpeed") client = mqtt.Client() client.connect("thingsboard.cloud", 1883) client.subscribe("v1/devices/me/telemetry") client.message_callback_add("obd", on_obd_message) ``` #### 三、ThingsBoard集成方案 1. **设备配置** - 创建设备Profile时启用: - 遥测数据校验(JSON Schema验证) - 属性自动同步($RPC \leftrightarrow Edge$) 2. **规则链优化** - 添加边缘计算节点: ```mermaid graph LR A[原始数据] --> B[数据清洗] B --> C{数据类型?} C -->|定位数据| D[轨迹优化] C -->|OBD数据| E[DTC过滤] ``` #### 四、开发路线建议 1. **阶段1(2周)**:搭建边缘计算环境 - 树莓派系统烧录(建议Raspbian Lite) - 硬件驱动开发(重点解决ATGM336H的$UART$通信) 2. **阶段2(3周)**:功能模块开发 - NB-IoT数据压缩算法(推荐$\Delta$ Encoding) - 4G视频传输的QoS控制(带宽自适应算法) 3. **阶段3(1周)**:系统联调测试 - 压力测试(建议$10^5$条/日的模拟数据量)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值