How To Download Deviantart Pictures Full Size

Get photos from deviantart gallery(s), download to local folder or export url list to local file

O download them, but it's in the form of a single ABR file, and I don't know how to decompress it/extract it. Reply TsaoShin Featured By Owner Aug 3, 2018 Professional Digital Artist.

deviant.groovy
/*
* author: crazy4groovy
* description: given a list of 1+ deviant art gallery URLs (semicolon separated),
* will parse out a list of all full size images found.
* license: MIT, no warranties or guarantees!
*/
import staticgroovyx.gpars.GParsPool.withPoolasparallel
/////////////////////////////////
List urls = args.size() >0?
args[0].split(';')*.trim() :
['http://name_of_account.deviantart.com/gallery/?set=gallery_id_number']
String fileOutPath = args.size() >1? args[1] :/C:out.txt/
int maxCount = args.size() >2? args[2].toInteger() :2000
int threads = args.size() >3?Math.min(args[3].toInteger(), 4) :2
String groupSeparator = args.size() >4? args[4] :File.separator
/////////////////////////////////
println'$fileOutPath$maxCount$threads$groupSeparator'
int offsetInterval =24
Map imgMap = ([:].withDefault{[] asLinkedHashSet})
Map retriesMap = [:].withDefault{0}
int timeoutTries =5;
imgMap =Collections.synchronizedMap(imgMap)
parallel(threads) {
urls.eachParallel { url->
println'START *** ${url} *****>>'
String picGroup = getPicGroup(url)
if (!picGroup) {
println'Invalid URL, please check it'
return
}
url =java.net.URLEncoder.encode(url + (!url.contains('?') ?'?':'&'))
int prevSize =0
int count =0
int page =0
while (count < maxCount) {
String u = url +'offset='+ (page*offsetInterval)
//println u
String yql =''https://query.yahooapis.com/v1/public/yql?diagnostics=true&q=select%20*%20from%20html%20where%20xpath%3D%27%2F%2Fa%5B%40data-super-img%5D%27and%20url%3D'${u}'''
println'{{{ $yql }}}'
//println (yql.toURL().text)
Thread.sleep(1000* (retriesMap[yql] ?:0) +100)
def root
try {
root =newXmlSlurper().parse(yql)
}
catch (java.io.IOException ex) {
println ('caught IOException! $picGroup -- $ex')
break;
}
catch (Exception ex) {
println ('caught Exception! $picGroup -- $ex')
break;
}
String err = root.diagnostics.url?.@error
if (err !='') {
if (retriesMap[yql] < timeoutTries) {
println'! timed out :: $err -- retrying $picGroup pg#$page'
retriesMap[yql] = retriesMap[yql] +1
}
else {
println'!! timed out :: $err -- SKIPPING $picGroup pg#$page'
if (err !='Read timed out') break;
page++
}
continue;
}
println'found: ${root.results.a.size()}'
List res = root.results.a
//.each {println it.@'data-super-img'.text()}
.collect{it.@'data-super-img'.text()}
//.findAll{it.contains(error)}*.replaceAll(error, '/')
//println res.size()
if (!res) break;
imgMap[picGroup].addAll(res)
count += res.size()
if (prevSize count) break;
else
prevSize = count
println'?? $picGroup pg#$page (${(page*offsetInterval)}) :: found: ${root.results.a.size()}, total size: $count >> set grand total size: ${imgMap.values().flatten().size()}'
page++
}
println'END : ${url}; #$count'
}
}
println'*SET GRAND TOTAL img list: (${imgMap.values().flatten().size()})*'
File o =newFile(fileOutPath)
if (o.isDirectory()) {
def ant =newAntBuilder()
imgMap.each { groupName, imgSet->
String rootPath = o.absolutePath +File.separator + groupName + groupSeparator
rootPath = rootPath.replaceAll(/[*?'<>|=]/,'_')
if (groupSeparator File.separator
&& (!(newFile(rootPath).directory))) {
(newFile(rootPath)).mkdir()
}
parallel(4) {
imgSet.eachParallel {
String imgName = it.split('/')[-1]
try {
ant.get(src: it, dest: rootPath + imgName, skipexisting: 'true')
}
catch (Exception ignore) { }
}
}
}
}
else {
print'Directory $fileOutPath does not exist, writing to file...'
o <<''
//o.delete()
o << imgMap.values().flatten().join('n') +'n'
println'DONE'
}
StringgetPicGroup( Stringurl ) {
String regex =/^(.+).deviantart.com(.+?)(?.*?q=(w+))?$/
url -='http://'
def m = (url =~ regex)
try {
String name = m[0][1] + m[0][2] + (m[0][4] ?:'')
return (name.replaceAll('/','').trim().replaceAll('','_'))
} catch (Exception ignore) {}
}
How to download deviantart pictures full size free

commented Aug 9, 2014

Good work here. The script works excellent.

commented Oct 24, 2014

How To Download Deviantart Pictures Full Size Free

Thanks! Just added feature to download the images as well.

commented May 16, 2015

How to download deviantart pictures full size free

Forget that stupid question. I should learn that before any question notice the code language.

How To Download Deviantart Pictures Full Size

How To Download Deviantart Pictures Full Size For Girls

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment