以前写过模拟登陆新浪微博的帖子,然而我并无去爬过微博的数据,以为有点浪费,因而就想写一个代码来发微博。写完以后以为若是能自动发微博就行了,可是我又不可能24小时开始(晚上12点后还会断网),也没有vps(穷学生狗),找过几个免费vps未果,而后想到以前用过新浪SAE,就想能不能在上面试试。
试了一天左右终于让我试出来了!!
基本实现了:
一、定时发送,这里是定时半小时
二、离线自动,基于sae,无需开电脑blabla
可是也有不完美的地方:本地我能够直接模拟登陆,可是把代码放到sae上死都不能登陆成功!最后没办法,只能本地获取cookies,而后放到sae上!也不知道cookies的失效时长,若是失效了还须要本地再获取,再放上去!
这里就说说部署的步骤吧!html
模拟登陆,获取cookies
这个看这篇文章:
http://blog.csdn.net/u011659379/article/details/48133911。python
固然也能够直接利用httpfox得到cookies,而后直接使用。使用httpfox获取cookies看这篇文章:
http://blog.csdn.net/u011659379/article/details/48133121
因为我没法再sae上模拟登陆,因而用的是第二种方法!面试
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这个地址 cookie
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:app
name: testweibo111 version: 1 cron: - description: cron_test url: /index.wsgi schedule: "*/30 * * * *"
url表明运行index.wsgi post
schedule: "*/30 * * * *"
表明每30分钟运行一次。
更多设置看这里url
而后把编辑index.wsgi
主要是把Python代码放进去.先看一下最简单的代码:spa
import sae#!!! def application(environ, start_response):#!!! start_response('200 ok', [('content-type', 'text/plain')])#!!! return ['Hello, SAE!'] application=sae.create_wsgi_app(app)#!!!
打开地址就能够看到: .net
尾部跟着#!!!
的都是不可缺乏的!除了这个区别以外,其余就跟使用IDE编辑脚本是同样的!能够随时打开网址来查看结果,若是代码出错,也能看到哪里出错了。好比: code
设置完这些之后,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