打從回到老家,平時沒事兒就寫寫blog,看看訪問量和排名,也算有點小成就感。
可是CSDN最近啥時候更新排名貌似時間上有點不準,以前的時候大概8點半左右就更新了,可是最近好像有點延遲。
可不可以做個監控呢?
拿falcon畫圖吧
#!/usr/bin/env python# -*- coding: utf-8 -*- #coding: utf8import sysimport jsonimport requestsimport timeimport urllib2, base64import reimport bs4reload(sys) sys.setdefaultencoding('utf8') # 獲取數據headers = {'user-agent': 'Mozilla/5.0 (X11; linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}r = requests.get('http://blog.csdn.net/vbaspdelphi',headers = headers)soup = bs4.BeautifulSoup(r.text)r2 = soup.select('div#panel_PRofile ul#blog_rank li')value_viewtotal=re.findall("/D+(/d+)/D+",str(r2[0]))[0]value_jifen=re.findall("/D+(/d+)/D+",str(r2[1]))[0]value_paiming=re.findall("/D+(/d+)/D+",str(r2[1]))[0]# 準備上報數據import timeimport urllib2import jsonp = []# 定義時間戳timestamp = int(time.time())def predata(endpoint,metric,key,value,timestamp,step,vtype): tags = '' i = { 'Metric' :'%s.%s'%(metric,key), 'Endpoint': endpoint, 'Timestamp': timestamp, 'Step': step, 'value': value, 'CounterType': vtype, 'TAGS': tags } return ip.append(predata("userdefine","csdn","viewtotal",value_viewtotal,timestamp,60,"GAUGE"))p.append(predata("userdefine","csdn","jifen",value_jifen,timestamp,60,"GAUGE"))p.append(predata("userdefine","csdn","paiming",value_paiming,timestamp,60,"GAUGE"))print json.dumps(p, sort_keys=True,indent = 4)#sys.exit(0)# 上報method = "POST"handler = urllib2.HTTPHandler()opener = urllib2.build_opener(handler)url = "http://127.0.0.1:1988/v1/push"request = urllib2.Request(url, data=json.dumps(p))request.add_header('Content-Type','application/json')request.get_method = lambda: methodtry: connection = opener.open(request)except urllib2.HTTPError,e: connection = eif connection.code == 200: print connection.read()else: print '{"err":1,"msg":"%s"}' % connection效果圖如下另外,里面的一些模塊,如果沒有的話就下載,比如
pip install bs4參考下 http://wuchong.me/blog/2014/04/24/easy-web-scraping-with-python/ 里面關于用bs4去拿html里面的元素非常不錯。
重點: 其實遇到的最大難點是python里面的re在找的時候如果re.find(“排(/d+)名”,r.text)這種,貌似由于是unicode的原因,有點問題,可以嘗試用/D作為非數字,但是這樣以來范圍就比較大了,所以借助bs4的威力就好多了。
新聞熱點
疑難解答