Актуальная версия скрипта доступна тут.
Прошлый пост говорил о решение проблемы с скачиванием картинок "в лоб". Вдумчивое курение Danbooru API на пару с DartWantuz позволило найти более элегантное решение.
Мой вариант на коленке со старыми куками:
Его вариант с логином:
Если энтузиазм не угаснет, то будет универсальный скрипт для нескольких подобных галерей.
Прошлый пост говорил о решение проблемы с скачиванием картинок "в лоб". Вдумчивое курение Danbooru API на пару с DartWantuz позволило найти более элегантное решение.
Мой вариант на коленке со старыми куками:
Запуск: %scriptname% тег файл_с_куками#! /bin/bash uag="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)" postcount=`curl -b $2 "http://danbooru.donmai.us/post/index.xml?tags=$1&limit=1"|pcregrep -o 'posts\ count=\"[^"]+'|sed -e 's/posts\ count=//' -e 's/\"//'` rm -f get2.danbooru.txt let "pcount=postcount/1000+1" for ((i=1; i<=$pcount; i++)) do wget "http://danbooru.donmai.us/post/index.xml?tags=$1&limit=1000&page=$i" --load-cookies="$2" -U "$uag" -O - |pcregrep -o -e 'file_url=[^ ]+'|sed -e 's/file_url=//g' -e 's/\"//g' >>get2.danbooru.txt done; wget -nc -i get2.danbooru.txt
Его вариант с логином:
Запуск: %scriptname% список тегов#!/bin/bash TAGS=$(echo $* | sed -e 's/ /%20/g') # опять эти пробелы... LOGIN='login' PASSWORD='password' # сцука, настройки AUTH=`curl -s -c danbooru.txt -F"commit=login" -F"url=" -F"user[name]=${LOGIN}" -F"user[password]=${PASSWORD}" \ http://danbooru.donmai.us/user/authenticate` # получаем кукисы с доставкой до danbooru.txt XML=`curl -b danbooru.txt -s "http://danbooru.donmai.us/post/index.xml?limit=1000&tags=${TAGS}&page=1"` TOTAL=$(echo $XML | egrep -o "[0-9]+" | head -n 4 | tail -n 1) # получаем кол-во страниц [ $TOTAL -le 1000 ] && TOTALPAGES=1 || TOTALPAGES=$(($TOTAL / 1000)) # считаем уже не так хитропопо, в отличии от гельбуры echo "TOTAL ${TOTAL} images" while [ $TOTALPAGES != 0 ]; do curl -b danbooru.txt -s "http://danbooru.donmai.us/post/index.xml?limit=1000&tags=${TAGS}&page=${TOTALPAGES}" \ | egrep -io "http:\/\/danbooru\.donmai\.us\/data\/[a-z0-9]+\.(jpg|png|gif|jpeg)" | uniq \ | xargs -d '\n' wget -P files # берём за рога, и качаем, и качаем let 'TOTALPAGES--' done rm danbooru.txt # удаляем файл с куками, дабы не оставить следов
Если энтузиазм не угаснет, то будет универсальный скрипт для нескольких подобных галерей.