iteye博客中的归档只是简单的日期数量统计,查看自己写博客情况不是很直观,一直都想他们都有一个这样的功能,结果一直都没有,加上自己最近学了一点python就自己实现了(python刚入门好多东西不懂),不过如果iteye也能实现自己添加插件的功能,这样我这个功能也能是一个插件(自己yy)。
先看效果:
下面贴代码:
import urllib
import urllib2
import re
import reportlab
url = 'http://xiaoshenge.iteye.com/blog/monthblog_more'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
request = urllib2.Request(url, '', headers)
response = urllib2.urlopen(request)
html = response.read()
p = re.compile('<li><a href="/blog/monthblog/(.*?)">.*</a> \((.*?)\)</li>')
datas = []
for date,total in p.findall(html):
data = (date,int(total))
datas.append(data)
import sys
import cairo
import pycha.line
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 800, 600)
dataSet = (
('lines', [(i, l[1]) for i, l in enumerate(datas)]),
)
options = {
'axis': {
'x': {
'ticks': [dict(v=i, label=l[0]) for i, l in enumerate(datas)],
},
'y': {
'tickCount': len(datas),
},
'background': {
'name': 'gradient',
'args': {'initialColor': 'blue',},
},
'legend': {'hide': True,},
'padding': {'left': 55,'bottom': 40,}
}
}
chart = pycha.line.LineChart(surface,options)
chart.addDataset(dataSet)
chart.render()
surface.write_to_png('test.png')