개파와 고양이파의 세력도를 GoogleChartAPI로 그래프화해 결착을 붙인다
비교군
http://xiidec.appspot.com/vschart.html?q=개, 고양이
결과는 이런 느낌.
고양이 우세. 지난 30일간의 하테나 북마크 수를 집계해 GoogleChartAPI로 그래프화하고 있다. 개 고양이 이외에도 입력 상자에 쉼표로 구분하여 키워드를 넣으면 무엇이든 비교할 수 있다.
이 URL에 키워드를 삽입하여 액세스하면 됩니다.
그러면 RSS가 떨어진다.
다음은 두 번째.
기사의 수에서는 인기도를 측정하는 것이 어렵기 때문에,
얼마나 북마크되어 있는지 계산합니다.
XML 안에
라는 항목이 있기 때문에 그것을 계산한다.
그건 그렇고, 이번에는 지난 30 일 이내의 기사 만 가져 왔습니다.
기사의 날짜를보고 싶다면
라는 곳을 보면 좋다.
마지막으로 세 번째.
여기에 등장 Google Chart API.
이것도 사용법은 간단.
?
라는 URL 뒤에
cht=【그래프의 종류】
그리고
&chs=【그래프의 크기】
그리고
&chd=【그래프의 파라미터】
그리고
&chl=【라벨의 이름】
추가
이런 느낌의 URL을 만들 뿐.
순식간에 완성.
완성품이 여기.
vschart.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import webapp2
import os
import urllib
from google.appengine.ext.webapp import template
from datetime import datetime, timedelta
from xml.etree.ElementTree import *
class VsChart(webapp2.RequestHandler):
def get(self):
if self.request.get('q')!="":
url=self.get_hatebu_chart_url(self.request.get('q').replace(" ",",").split(","))
else:
url=""
q=self.request.get('q')
template_values={
'url':url,
'q':q
}
path = os.path.join(os.path.dirname(__file__), 'html/vschart.html')
self.response.out.write(template.render(path, template_values))
def count_hatebu_tag(self,q):
count=0
ago_30=datetime.today()-timedelta(days=30)
tree = parse(urllib.urlopen('http://b.hatena.ne.jp/search/tag?q=' + q + '&mode=rss'))
for i in tree.findall('./{http://purl.org/rss/1.0/}item'):
if ago_30 <= datetime.strptime(i.find('{http://purl.org/dc/elements/1.1/}date').text.split("T")[0], "%Y-%m-%d"):
count += int(i.find('{http://www.hatena.ne.jp/info/xmlns#}bookmarkcount').text)
return count
def get_hatebu_chart_url(self,qList):
countList=[]
allCount=0
for q in qList:
count = self.count_hatebu_tag(q.encode("utf-8"))
allCount+=count
countList.append(count)
if allCount != 0:
perList = [str((c*100 / allCount)) for c in countList]
else:
perList = ["0"]*len(qList)
return "https://chart.googleapis.com/chart?cht=p3&chs=400x200&chd=t:"+",".join(perList)+"&chl="+"|".join(qList)
app = webapp2.WSGIApplication([
('/vschart.html', VsChart)
], debug=True)
vschart.html
<html>
<head>
</head>
<body style="">
<p> </p>
<p>
<meta charset="UTF-8"></meta>
<title>比較くん</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<div data-role="page" id="first">
<div data-role="content">
<h1>どっちが人気?</h1>
<form action="/vschart.html" method="get">
比較対象をカンマ区切りで入れてね。過去一ヶ月間のネット上での注目度合いを比較するよ。
<input type="text" name="q" id="q" size="40" value="{{ q }}"><input type="submit" value="比較する">
</form>
<div>
<img src="{{ url }}" alt="たんぽぽ">
</div>
</div>
</div>
</body>
</html>
요약
이번은 원 그래프이었지만, 막대 그래프라든지 꺾은선 그래프라든지 여러가지 있다.
자세한 내용은 Google의 레퍼런스 페이지에서 체크!
Google Chart Tools:Image Charts (Deprecated)
온갖 모든 종교 전쟁이 종말하네요! 메커니즘 구조는 매우 간단. Hatena 북마크에서 키워드 당 부쿠마 RSS를 가져옵니다. 북마크 수를 세는다. Google Chart API를 호출하는 URL을 생성하여 클라이언트에 전달합니다. 우선 1번째. Hatena 북마크는 키워드 당 새로운 RSS를 제공하고 있다.
음...Deprecated?
Important: The Image Charts portion of Google Chart Tools has been officially deprecated as of April 20, 2012. It will continue to work as per our deprecation policy.
중요: Google의 차트 도구의 이미지 차트 부분은 공식적으로 2012년 4월 20일부터 폐지되었습니다. 그것은 우리의 비추천 정책에 따라 계속 작동합니다.
그래.
이미지를 사용하는 GoogleChartAPI는 더 이상 사용되지 않으며,
Javascript와 SVG를 사용한 새로운 GoogleChartAPI를 사용할 수있는 것 같습니다.
모처럼 만들었는데...
Reference
이 문제에 관하여(개파와 고양이파의 세력도를 GoogleChartAPI로 그래프화해 결착을 붙인다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kurehajime/items/cd48febad3e802f9fb1d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)