Advertisement
Radjah

getpixiv.sh

Mar 31st, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.31 KB | None | 0 0
  1. #! /opt/bin/bash
  2.  
  3. dldr='aria2c --remote-time'
  4. if [ ! -d $3 ]
  5. then
  6. echo Creating $3
  7. mkdir "$3"
  8. else
  9. dldr='/opt/bin/wget -nc'
  10. fi
  11. echo Entering $3
  12. cd $3
  13.  
  14. # ярлык на страницу автора
  15. echo \[InternetShortcut\] > "$3.url"
  16. echo URL=http\:\/\/www.pixiv.net\/member_illust.php\?id=$1 >> "$3.url"
  17.  
  18. # настройки
  19. # id художника (athid) берется из URL вида http://www.pixiv.net/member_illust.php?id=18530, где 18530 и есть искомый параметр.
  20. pixid=ЛОГИН
  21. pixpass=ПАРОЛЬ
  22. picnum=$2
  23. let "pagenum=picnum/20+1"
  24. athid=$1
  25.  
  26. # логинимся (куки в pixiv.txt)
  27. AUTH=`curl -s -c pixiv.txt -F"mode=login" -F"pass=${pixpass}" -F"pixiv_id=${pixid}" -F"skip=1" http://www.pixiv.net/index.php`
  28.  
  29. # качаем все страницы с картинками и парсим их на ходу
  30. for ((i=1;i<=$pagenum;i++))
  31. do
  32. /opt/bin/wget --load-cookies=pixiv.txt "http://www.pixiv.net/member_illust.php?id=$athid&p=$i" -O - --referer="http://www.pixiv.net/"|pcregrep -o  -e 'http\:\/\/i\d{1,3}\.pixiv\.net\/img-inf\/img\/[^\"]+' -e 'http\:\/\/i\d{1,3}\.pixiv\.net\/img\d{1,3}\/img\/[^\"]+'|sed 's/_s\./\./' | sed 's/\?.*//'>> get.pixiv.txt
  33. done;
  34. # === НАЧАЛО ПАТЧА ===
  35. # Отделяем новые хитрые ссылки
  36. basename -a `cat get.pixiv.txt| grep img-inf`|sed 's/\..*//' > get.pixiv.alt.txt
  37. cat get.pixiv.txt | grep -v img-inf > get.pixiv.txt.tmp
  38. mv get.pixiv.txt.tmp get.pixiv.txt
  39.  
  40. # Парсим страницы
  41. # http://www.pixiv.net/member_illust.php?mode=big&illust_id=29149986
  42.  
  43. for i in `cat get.pixiv.alt.txt`
  44. do
  45. /opt/bin/wget "http://www.pixiv.net/member_illust.php?mode=big&illust_id=$i" --load-cookies=pixiv.txt --referer="http://www.pixiv.net/member_illust.php?mode=medium&illust_id=$i" -O -|pcregrep -o  -e 'http\:\/\/i\d{1,3}\.pixiv\.net\/img\d{1,3}\/img\/[^\"]+' >> get.pixiv.txt
  46. done;
  47.  
  48. # === КОНЕЦ ПАТЧА ===
  49.  
  50. # качаем все картинки, которые нашли
  51.  
  52. $dldr -i get.pixiv.txt --referer="http://www.pixiv.net/"
  53.  
  54. cat get.pixiv.txt |sed 's/http\:\/\/i[^\/]*\/img[0-9]*\/img\/[^\/]*\///g'|sort|uniq > list1
  55. ls *.jpg *.png *.gif|grep -v _ > list2
  56. cat list1 list2|sort|uniq -u|sed 's/\..*//g' > list3
  57. for i in `cat list3`
  58. do
  59. /opt/bin/wget "http://www.pixiv.net/member_illust.php?mode=manga&illust_id=$i&type=scroll" --load-cookies=pixiv.txt --referer="http://www.pixiv.net/" -O -|pcregrep -o -e "http\:\/\/i\d{1,3}\.pixiv\.net\/img\d{1,3}\/img\/[^\']+" -e "http\:\/\/i\d{1,3}\.pixiv\.net\/img-inf\/img\/[^\']+"| sed 's/_p/_big_p/g'>> get.pixiv.albums.txt
  60. done;
  61.  
  62. $dldr -i get.pixiv.albums.txt --referer="http://www.pixiv.net/"
  63.  
  64. rm get.pixiv.albums.txt
  65.  
  66. # Докачиваем альбомы без _big
  67. ls *.jpg *.png *.gif|grep big|sed 's/_big[^\.]*//g'|uniq > list2
  68. cat list3 list2|sort|sed 's/\..*//g'|uniq -u > list4
  69. for i in `cat list4`
  70. do
  71. /opt/bin/wget "http://www.pixiv.net/member_illust.php?mode=manga&illust_id=$i&type=scroll" --load-cookies=pixiv.txt --referer="http://www.pixiv.net/" -O -|pcregrep -o -e "http\:\/\/i\d{1,3}\.pixiv\.net\/img\d{1,3}\/img\/[^\']+" -e "http\:\/\/i\d{1,3}\.pixiv\.net\/img-inf\/img\/[^\']+" >> get.pixiv.albums.txt
  72. done;
  73.  
  74. $dldr -i get.pixiv.albums.txt --referer="http://www.pixiv.net/"
  75.  
  76. # удаляем палево
  77.  
  78. rm -f *.txt list*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement