[SAE]抓取csdn部落格訪問次數,圖形展示訪問趨勢,saecsdn
前一段時間買了個網域名稱,綁定到github的靜態部落格上,也就相當於一個獨立部落格了。 自己可以添加各種站長統計,但是回過頭來到CSDN這個部落格卻沒法查看某段時間的訪問統計,只有一個總的訪問量。於是我就想自己弄個定時任務,抓取頁面上這個總的訪問次數,然後存到資料庫中,然後通過js畫圖外掛程式來查看一段時間的訪問變化以及每個時間段的訪問情況。
正好前一段時間申請了一個新浪sae的帳號一直沒有怎麼用,於是就決定寫幾個指令碼來實現這個功能
環境: SAE
軟體: python webby,bootstrap,hightcharts
使用到的服務: mysql cron定時任務
描述:
定時任務: 每小時的0分鐘開始抓取csdn部落格訪問次數,把訪問總量和本次訪問量與上次訪問的差值 插入到mysq中
頁面訪問: 通過js畫圖軟體畫出整個訪問趨勢
主要的代碼:
sae cron配置 config.yaml
name: loveshijianversion: 1libraries:- name: webppy version: "0.36"- name: lxml version: "2.3.4"cron:- description: cron test url: cron/show schedule: "0 * * * *"
抓取方法: weixin_handler.py
def get_click(): ''' get my blog clicked number ''' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-Agent' : user_agent } request = urllib2.Request(BLOG_URL, headers=headers) res = urllib2.urlopen(request) the_page = res.read() #print the_page res = '' pattern = re.compile('''<li>訪問:<span>(.*)</span></li>''', re.M) info_str = pattern.findall(the_page) if len(info_str)>0: res = info_str[0] else: pattern = re.compile('''<LI>訪問:<SPAN>(.*)</SPAN></LI>''', re.M) info_str = pattern.findall(the_page) res = info_str[0] return res
原理很簡單,一個下午也就實現了,但是highcharts用的不是很好,時間軸顯示一直有問題。
源碼地址: https://github.com/orangle/SAEcode
展示頁面: http://loveshijian.sinaapp.com/hour_show
有時間繼續重構,webpy之前沒有使用過,都是現用現查,程式碼群組織結構比較混亂。。
本文出自 “orangleliu筆記本” 部落格,請務必保留此出處http://blog.csdn.net/orangleliu/article/details/39184291