Skip to content

Instantly share code, notes, and snippets.

@racerxdl
Forked from sheran/jnlp_crawler.py
Created August 8, 2017 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save racerxdl/9ebb3f2f29aa8f41900ede8661f5cb30 to your computer and use it in GitHub Desktop.
Save racerxdl/9ebb3f2f29aa8f41900ede8661f5cb30 to your computer and use it in GitHub Desktop.
Download all the jar files in a jnlp file for offline examination
#!/usr/bin/env python
#
# jnlp_crawler.py - Download all the jar files in a jnlp file for offline examination
# Sheran Gunasekera
#
from xml.dom.minidom import parse
from xml.parsers.expat import ExpatError
import urllib
import sys
to_download = []
try:
dom = parse(sys.argv[1])
except ExpatError as (strerror):
print "!! JNLP File Parsing error -- "+str(strerror)
sys.exit(1)
jnlp = dom.getElementsByTagName("jnlp")
codebase = jnlp[0].getAttribute("codebase")
resources = dom.getElementsByTagName("resources")
for resource in resources:
jar = resource.getElementsByTagName("jar")
for attributes in jar:
to_download.append(attributes.getAttribute("href"))
for url in to_download:
try:
print "+ Attempt to fetch "+codebase+url
urllib.urlretrieve(codebase+url,url.split('/')[-1])
print "+ Done"
except IOError as (errno, strerror):
print "!! Failed -- "+strerror
except KeyboardInterrupt:
sys.exit(0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment