標籤:targe 開始 imp ons server end 基本 通過 程式
之前寫過類比登入新浪微博的文章,然而我並沒有去爬過微博的資料,覺得有點浪費,於是就想寫一個代碼來發微博。寫完之後覺得如果能自動發微博就好了,但是我又不可能24小時開始(晚上12點後還會斷網),也沒有vps(窮學生狗),找過幾個免費vps未果,然後想到之前用過新浪SAE,就想能不能在上面試試。
試了一天左右終於讓我試出來了!!
基本實現了:
1、定時發送,這裡是定時半小時
2、離線自動,基於sae,無需開電腦blabla
但是也有不完美的地方:本地我可以直接類比登入,但是把代碼放到sae上死都不能登入成功!最後沒辦法,只能本地擷取cookies,然後放到sae上!也不知道cookies的失效時間長度,如果失效了還需要本地再擷取,再放上去!
這裡就說說部署的步驟吧!
類比登入,擷取cookies
這個看這篇文章:
http://blog.csdn.net/u011659379/article/details/48133911。
當然也可以直接利用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就是第一步擷取的cookiesrequests.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: testweibo111version: 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上面去。
代碼: 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代碼