介面應用小玩具-部落格園積分排名變動監控工具
# coding=utf-8 """獲取部落格的排名並自動郵件通知 """ from bs4 import BeautifulSoup from time import sleep import requests import logging import thread from dtlib.notice import MailMsg from dtlib.dtlog import dlog __author__ = 'Harmo' def get_nums(blogs_des): """ get page ranks from string :param blogs_des: :return: """ split_str = blogs_des.split('-')[1].strip() return split_str class BlogRankMonitor(object): """ 部落格園積分排名監控工具 """ def __init__(self, id): self.gap_seconds = 60 * 30 # 間隔時間為30min self.url_fmt = 'http://www.cnblogs.com/%s/mvc/blog/sidecolumn.aspx?blogApp=%s' self.id = id self.score = 0 self.rank = 0 self.his_score = 0 self.his_rank = 0 def get_blog_ranks(self): """ 解析頁面獲取部落格積分和排名 :return: """ url = self.url_fmt % (self.id, self.id) res = requests.get(url) soup = BeautifulSoup(res.text) lis = soup.findAll('div') for item in lis: if 'sidebar_scorerank' == item.get('id'): li_lists = item.findAll('li') for li_item in li_lists: if u'積分' in li_item.text: self.score = get_nums(li_item.text) elif u'排名' in li_item.text: self.rank = get_nums(li_item.text) else: print 'Error' continue def monitor_score_rank(self): """ 監控部落格積分及排名的變化 :return: """ while True: self.get_blog_ranks() if self.score != self.his_score or self.rank != self.his_rank: # region 傳送郵件 mail_title = '[e-notice]:blog-rank-changes' mail_body = "[%s]time-(score,rank):old-(%s,%s),now-(%s,%s)" \ % ( self.id, self.his_score, self.his_rank, self.score, self.rank ) mail_obj = MailMsg() mail_obj.set_title(mail_title) mail_obj.set_body(mail_body) mail_obj.send() dlog.debug('send mail message:%s' % self.id) # endregion self.his_score = self.score self.his_rank = self.rank sleep(self.gap_seconds) def start_score_rank_thread(self): """ 開啟監控的執行緒 :return: """ thread.start_new_thread(self.monitor_score_rank, ()) if __name__ == '__main__': logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING) id_list = [ 'zhangfei', 'beer' ] for id in id_list: blog = BlogRankMonitor(id) blog.start_score_rank_thread() #讓主執行緒一直執行 while 1: sleep(3600)
相關推薦
介面應用小玩具-部落格園積分排名變動監控工具
# coding=utf-8 """獲取部落格的排名並自動郵件通知 """ from bs4 import BeautifulSoup from time import sleep import requests import logging import thread from dt
UWP 獲取部落格園積分,並以圖表形式呈現變化趨勢
先看一下效果吧 1. 分析 說實話,之前還真沒在乎過部落格園的排名和積分,部落格園預設也不給顯示。需要自己到選項裡面勾選才可以。 之前也有幾個大佬寫過類似的文章,不過是很早了。部落格園關於獲取積分的api已經變了。 也不算是api吧,
檢視部落格園積分與排名趨勢圖的工具
問題的提出 在部落格園寫文章有一段時間了,除了自己有一些新的發現想與別人分享外,推動我寫文章的最大動力就是看部落格園排名不斷增長啦!然而在部落格園後臺,只能看到當天的積分與排名,歷史值和趨勢卻沒有辦法查詢,對於文章發表後對自己積分與排名的影響並不直觀,於是就想到自己動手做一個積分與排名趨勢圖這樣一個工具。 具
一位牛人的多執行緒和非同步呼叫文章 ~轉自部落格園的“小顧問”
首先申明:這篇文章不是我寫的,我看到的一位牛人的,自己慢慢的消化了……摘要:本章討論與智慧客戶端應用程式中多執行緒的使用有關的問題。為了最大限度地提高智慧客戶端應用程式的響應能力,需要仔細考慮如何和何時使用多執行緒。執行緒可以大大提高應用程式的可用性和效能,但是當您確定它們將如何與使用者介面互動時,需要對其進
ngModel 值不更新 介面不展示(轉自部落格園雪狼部落格)
ngular中的$scope是頁面(view)和資料(model)之間的橋樑,它連結了頁面元素和model,也是angular雙向繫結機制的核心。 而ngModel是angular用來處理表單(form)的最重要的指令,它連結了頁面表單中的可互動元素和位於$scope之
iOS 對應用程式啟動時所有方法的呼叫順序分析(轉自董鉑然部落格園)
一個應用程式的啟動過程要包括代理的建立,控制器的載入和控制器view的載入,這其中有很多關於生命週期的方法,每個方法都是有先後順序的,如果呼叫順序拿不準,或者某段程式碼寫的方法不恰當,就會遇到各種奇葩問題。本文不怕麻煩的在幾乎所有啟動時要呼叫的方法裡都用了 __FUNCT
完成埠(Completion Port)詳解 轉載來自部落格園----- By PiggyXP(小豬)
完成埠(Completion Port)詳解 ----- By PiggyXP(小豬) 前 言
部落格園小編,請給我一個說法 20210315
部落格園小編,請問你們是幾個意思,這是第幾次了,你們自己數一數。給你們發郵件,你們有回覆嗎?? 你列舉的首頁是分享知識的地方,要求: 1,原創精品 2,排版整齊 3,足夠的篇幅 4,與程式設計師相關,能夠讓讀者從中學到知識 那我的文章 Azure Cost alerts 費用成本分析 怎麼
Xdebug安裝對應版本與配置 - cxscode - 部落格園
Xdebug安裝地址https://xdebug.org/download.php,進入下載頁面後點擊custom installation instructions,可以找到適合的Xdebug版本。 如果你點選了custom installation instructions,會進入下面的
phpstorm除錯環境XDebug搭建 - cxscode - 部落格園
1.安裝XDebug,通過phpinfo()可以看到xdebug是否已安裝!!!如果未安裝,可以先看我的另一篇關於XDebug安裝的文章:http://www.cnblogs.com/cxscode/p/7045827.html 2.phpstorm配置 因為中間遇到一個坑,所以網上大部分配置操作都做
phpstorm+xdebug詳解 - cxscode - 部落格園
1.run->edit configurations StartUrl最好是網址,不然容易出錯,Server選擇的是配置時新增的Servers,詳可參考:http://www.cnblogs.com/cxscode/p/7045944.html 2. Chrome谷歌瀏覽器的擴充套件我安裝了兩個
windows下nginx配置報錯GetFileAttributesEx - JohnnyWei - 部落格園
因為電腦螢幕出現亮點,拿去換屏了,所以使用了windows環境,安裝了下wlmp環境 在配置Nginx的時候,發現配置沒有問題,但是老是訪問不了。 2015/08/24 15:03:59 [crit] 4560#3796: *222 GetFileAttributesEx() "d:\wwwroot
git分支與版本管理、版本回退、衝突解決記錄 - 海北天藍 - 部落格園
一.基礎使用 1.初始化本地倉庫 git init 2.關聯遠端倉庫 git remote add origin [email protected]:使用者名稱/倉庫名.git 3.新增遠端倉庫檔案到本地 git pull origin master 本地自動建
2018年11月1日開通部落格園感想!
為什麼開通部落格園?對啊?我也想問自己這個問題。我想,還是為了自己心中那份不安分吧。至於自己心中的那小目標,我一直在奮鬥著。。。。。,我感覺在向我招手,我在一直在努力著。歸結一點就是使自己to Strong,better Strong。 學習是一個持續的過程,由於學習知識的混亂,我認為有必要將自己的學習的知
部落格園新增github角標的方法
作為程式設計師,總該有個 github 賬戶吧。可以使用 GitHub Corners 將部落格和 Github 賬戶關聯起來。 效果圖:見左上角 使用方式: 進入 GitHub Corners ,選擇自己鐘意的 Github 角樣式,拷貝對應的程式碼。記得將超連結 a 的 href 屬性替換為你的 git
今天,我開通了部落格園!
部落格開通時間: 2018-11-02-19:43:15 開通部落格目的: 記錄學習程序,分享開發過程! 部落格內容: 1、學習C++,為了更深刻的理解計算機工作原理; 2、學習Python; 3、用Python開發houdini外掛;
尋找複雜背景下的物體輪廓 (從禾路的部落格園整理學習)
目錄 1.問題背景 2.解決思路 3.程式碼實現 4.相關資料 1.問題背景 由於拍攝時產生的陰影原因,所計算出來的物體輪廓並不完整。那麼有沒有方法檢測出物體的完整輪廓呢? &n
部落格搬家系列(三)-爬取部落格園部落格
部落格搬家系列(三)-爬取部落格園部落格 一.前情回顧 部落格搬家系列(一)-簡介:https://blog.csdn.net/rico_zhou/article/details/83619152 部落格搬家系列(二)-爬取CSDN部落格:https://bl
MySQL優化---儲存過程和儲存函式-1-轉自部落格園
轉自網際網路.mysql優化 當一個大型系統在建立時,會發現,很多的SQL操作是有重疊的,個別計算是相同的,比如:業務系統中,計算一張工單的計算方式。當遇到這些情況時,我們運用儲存過程就是一個非常棒的優化啦。那麼,什麼是儲存 過程和儲存函式呢? 一、MYSQL儲存過程簡介(技術
加入部落格園的第一篇文章
這裡是一個大一軟體專業的....萌新? 近些時候大佬AK說:我開了個公眾號,我們寫個docker教程吧..... 但是呢我剛開學沒多久事情亂七八糟的有一堆 只能晚上看看他寫好的文章提提意見然後再上傳 唯一做過的貢獻可能就是docker教程系列的封面是我做的吧 其他的事情都是大佬去做的(逃) 原先是