gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / cssutils / scripts / csscapture.py @ 475
History | View | Annotate | Download (2.23 KB)
1 |
#!/usr/bin/env python
|
---|---|
2 |
"""Retrieve all CSS stylesheets including embedded for a given URL.
|
3 |
Retrieve as StyleSheetList or save to disk - raw, parsed or minified version.
|
4 |
|
5 |
TODO:
|
6 |
- maybe use DOM 3 load/save?
|
7 |
- logger class which handles all cases when no log is given...
|
8 |
- saveto: why does urllib2 hang?
|
9 |
"""
|
10 |
__all__ = ['CSSCapture']
|
11 |
__docformat__ = 'restructuredtext'
|
12 |
__version__ = '$Id$'
|
13 |
|
14 |
from cssutils.script import CSSCapture |
15 |
import logging |
16 |
import optparse |
17 |
import sys |
18 |
|
19 |
def main(args=None): |
20 |
usage = "usage: %prog [options] URL"
|
21 |
parser = optparse.OptionParser(usage=usage) |
22 |
parser.add_option('-d', '--debug', action='store_true', dest='debug', |
23 |
help='show debug messages during capturing')
|
24 |
parser.add_option('-m', '--minified', action='store_true', dest='minified', |
25 |
help='saves minified version of captured files')
|
26 |
parser.add_option('-n', '--notsave', action='store_true', dest='notsave', |
27 |
help='if given files are NOT saved, only log is written')
|
28 |
# parser.add_option('-r', '--saveraw', action='store_true', dest='saveraw',
|
29 |
# help='if given saves raw css otherwise cssutils\' parsed files')
|
30 |
parser.add_option('-s', '--saveto', action='store', dest='saveto', |
31 |
help='saving retrieved files to "saveto", defaults to "_CSSCapture_SAVED"')
|
32 |
parser.add_option('-u', '--useragent', action='store', dest='ua', |
33 |
help='useragent to use for request of URL, default is urllib2s default')
|
34 |
options, url = parser.parse_args() |
35 |
|
36 |
# TODO:
|
37 |
options.saveraw = False
|
38 |
|
39 |
if not url: |
40 |
parser.error('no URL given')
|
41 |
else:
|
42 |
url = url[0]
|
43 |
|
44 |
if options.debug:
|
45 |
level = logging.DEBUG |
46 |
else:
|
47 |
level = logging.INFO |
48 |
|
49 |
# START
|
50 |
c = CSSCapture(ua=options.ua, defaultloglevel=level) |
51 |
|
52 |
stylesheetlist = c.capture(url) |
53 |
|
54 |
if options.notsave is None or not options.notsave: |
55 |
if options.saveto:
|
56 |
saveto = options.saveto |
57 |
else:
|
58 |
saveto = u'_CSSCapture_SAVED'
|
59 |
c.saveto(saveto, saveraw=options.saveraw, minified=options.minified) |
60 |
else:
|
61 |
for i, s in enumerate(stylesheetlist): |
62 |
print u'''%s. |
63 |
encoding: %r
|
64 |
title: %r
|
65 |
href: %r''' % (i + 1, s.encoding, s.title, s.href) |
66 |
|
67 |
|
68 |
if __name__ == "__main__": |
69 |
sys.exit(main()) |