Cacooの画像一括ダウンロード

画像に番号を振って保存する。

本当は一気にpdf化したかったんだけど、
なんかいいものがなくて、
結局Image to PDF Converter Freeというツールで手動でやった。

URLで非公開図形用(要APIキー)

2010.10.01

引数

from xml.dom.minidom import parse
import sys
import urllib2
import urllib
import os

if len(sys.argv) < 3:
	print 'Usage: # python %s api-key diagram-key' % sys.argv[0]
	sys.exit()

api = sys.argv[1]
diagram = sys.argv[2]

url = 'https://cacoo.com/api/v1/diagrams/' + diagram + '.xml?apiKey=' + api
dom = parse(urllib2.urlopen(url))

if not os.path.isdir(diagram):
	os.mkdir(diagram)

no = 1
for sheet in dom.getElementsByTagName('sheet'):
	file = ('%02d' % no) + '.png'
	imgurl = sheet.getElementsByTagName('imageUrlForApi')[0].firstChild.nodeValue
	print imgurl
	urllib.urlretrieve(imgurl + '?apiKey=' + api, os.path.join(diagram, file))
	no += 1

dom.unlink()

URLで公開図形用(APIキー不要)

2010.06.06

Pythonでググってコピペしながら書いてみた。
ググってコピペしたので別のやり方があるとかあっちのがいいとか
Pythonの書き方がどーのとかよくわかりません。。
許して。

パラメータに図形キー(16文字のランダムな文字列)を渡すと
画像に番号を振って保存する。
認証には対応してないので、URLで画像を公開している図形のみ対応。

HTMLを適当に読んでいるのでCacooが仕様変更したら動かないと思われるので注意。

from htmllib import HTMLParser
from formatter import NullFormatter
import urllib2
import urllib
import os
import sys

class ExtractTextLinkParser(HTMLParser):
	
	def __init__(self):
		HTMLParser.__init__(self, NullFormatter())
		self.links = []

	def anchor_bgn(self, href, name, type): # <a>が見つかった場合の処理
		HTMLParser.anchor_bgn(self, href, name, type)
		if len(href) > 1 and href[:1] == '#':
			self.links.append(href[1:])

def get_links(url):
	response = urllib2.urlopen(url)
	parser = ExtractTextLinkParser() 
	parser.feed(response.read())	
	parser.close()
	return parser.links

if len(sys.argv) < 2:
	print 'Usage: # python %s diagram-key' % sys.argv[0]
	sys.exit()

key = sys.argv[1]
url = 'https://cacoo.com/diagrams/' + key
links = get_links(url)

os.mkdir(key)

no = 1
for href in links:
	file = ("%02d" % no) + '.png'
	print no, '/', len(links)
	urllib.urlretrieve(url + '-' + href + '.png', os.path.join(key, file))
	no += 1

参考元


Tag: Cacoo pdf Python


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-01 (金) 20:05:13 (599d)
.NET Ajax AmazonWebServices Android C# C++ CMS Cacoo DB Exam Generics Java JavaScript Local Oracle PHP Perl Photo Programming Pukiwiki Python Qt Review Ruby SQLServer Seasar Software Tips Tool VB WebService Windows WindowsMobile XHTML XML XMLMaster XSLT game pdf wkhtmltopdf