以前寫過模擬登陸新浪微博的帖子,然而我並無去爬過微博的數據,以爲有點浪費,因而就想寫一個代碼來發微博。寫完以後以爲若是能自動發微博就行了,可是我又不可能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