之前写过模拟登录新浪微博的帖子,然而我并没有去爬过微博的数据,觉得有点浪费,于是就想写一个代码来发微博。写完之后觉得如果能自动发微博就好了,但是我又不可能24小时开始(晚上12点后还会断网),也没有vps(穷学生狗),找过几个免费vps未果,然后想到之前用过新浪SAE,就想能不能在上面试试。 
试了一天左右终于让我试出来了!! 
 
基本实现了: 
1、定时发送,这里是定时半小时 
2、离线自动,基于sae,无需开电脑blabla 
但是也有不完美的地方:本地我可以直接模拟登录,但是把代码放到sae上死都不能登录成功!最后没办法,只能本地获取cookies,然后放到sae上!也不知道cookies的失效时长,如果失效了还需要本地再获取,再放上去! 
这里就说说部署的步骤吧!

  1. 模拟登录,获取cookies 
    这个看这篇文章: 
    http://blog.csdn.net/u011659379/article/details/48133911

    当然也可以直接利用httpfox获得cookies,然后直接使用。使用httpfox获取cookies看这篇文章: 
    http://blog.csdn.net/u011659379/article/details/48133121 
    由于我无法再sae上模拟登录,于是用的是第二种方法!

  2. 发送微博的代码
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: 1
cron:
- 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上面去。 

代码: http://yunpan.cn/cmt3hzkawSukn 访问密码 d512

记得修改config.yaml把名字改为你app名字 
然后修改index.wsgi把cookies修改为你的cookies。

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

原网址:http://blog.csdn.net/u011659379/article/details/48314317

SAE部署Python-让云端自动运行Python代码的更多相关文章

  1. 在windows中:双击运行Python程序、后台运行Python程序

    在windows中:双击运行Python程序.后台运行Python程序 安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退.怎样避免闪退呢? 我们用python的日志输出程 ...

  2. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...

  3. 如何在没有安装 Python 的机器上运行 Python 程序

    cmd 命令 1. pip install pyinstaller 2. pyinstaller <path to your prog.py> 3. 应用程序在prog.py同路径下的 d ...

  4. Python小技巧:运行目录或ZIP文件

    在写Python程序时,将不同功能代码写在不同文件中是一个好习惯,但是对于某些情况.如需要将脚本提供给别人运行使用,如若将程序写在几个文件中,则需要将文件都发给他人.别人就需要管理不同文件,这样对于别 ...

  5. 【Python从入门到精通】(二)怎么运行Python呢?有哪些好的开发工具(PyCharm)

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 这是Pyhon系列文章的第二篇,本文主要介绍如何运行Python程序以及安装PyCharm开发工具. 干货满满,建议收藏,需要用到时常看看. 小伙 ...

  6. mac学习Python第一天:安装、软件说明、运行python的三种方法

    一.Python安装 从Python官网下载Python 3.x的安装程序,下载后双击运行并安装即可: Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. MAC 系统一般 ...

  7. python学习笔记02:运行python程序

    1.启动cmd命令行,输入python后回车,运行python解释器: 输入python代码后回车: print('Hello World')

  8. C# 自动运行代码 (创建windows 服务的形式 )

    本文转载自:http://blog.csdn.net/csethcrm/article/details/17917721 1.      新建项目 1.1 右键解决方案 – 添加 – 新建项目 1.2 ...

  9. java的mac自动化-自动运行java程序

    本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地自动运行java代码 首先如图所示写下如下一段代码 package zlr;import org.junit.Test;public ...

随机推荐

  1. Arcgis Engine(ae)接口详解(5):IGeometry几何基础操作

    //点操作~~~~~~~~~~~~~~~~~~~~~~~~~ //通过坐标生成点 IPoint point = new PointClass(); point.PutCoords(, ); //获取点 ...

  2. Spring Batch(4): Job具体解释

    第四章 配置作业Job 4.1 基本配置 Job的配置有3个必须的属性.name,jobRepository,steps.一个简单的Job配置例如以下: <job id="footba ...

  3. Python 003- 小知识汇总(更新中)

    #查询key是否存在,可以在使用未知的字典的时候使用 #-*- coding:utf-8 -*- D={'a':1,'c':3,'b':2} for key in sorted(D): print(k ...

  4. 「翻译」Unity中的AssetBundle详解(一)

    AssetBundles AssetBundle是一个存档文件,其中包含平台在运行时加载的特定资产(模型,纹理,预制,音频剪辑,甚至整个场景).AssetBundles可以表示彼此之间的依赖关系;例如 ...

  5. pod导入第三方库头文件不能自动联想的解决方法

    使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少.但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适 ...

  6. caioj1462: 【EXKMP】回文串

    不得不说这是一道好题(前排膜拜灯教授),其实这道题如果不说是EXKMP,很容易就想到Manacher(好像也可以这样做) 回到这道题,这样只有一个字符串,还要求回文?立刻想到了将这个串和它的反串跑EX ...

  7. java基础知识一

    1.计算机基础知识概述 (1) 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处 ...

  8. Ubuntu安装mycli,让mysql命令行可以自动提示

    安装mycli 1.确保有安装python 2.确保有安装pip 3.进入su模式,以管理员身份安装 4.安装 pip install -U mycli 5.登录 mycli -u root 很好很强 ...

  9. classname.this 和 this的使用场景

    今天在写代码时,发现在写了一个内部类,而在内部类中需要调用外部类的实例方法,直接使用this调用发现调用的不是外部类而是内部类,于是查找资料原来需要使用外部类的classname.this这样的调用, ...

  10. 使用 Word 2013 维护博客

    博客的发布.修改是一件非常耗时.耗精力的事情.借助 Word 2013,维护博客将变得非常简单. 1 新建博客文章 运行 Word 2013,新建文档.如下图所示: 图1 鼠标左键单击上图的" ...