Guest User

gi-get.sh

a guest
Jan 1st, 2013
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.83 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #
  4. # As-is, 100% free, late-night software.
  5. #
  6. # DO NOT RUN AS ROOT!
  7. #
  8. # Description: By default, tries to download 300 google
  9. # image search results for search string into folder named 'img'.
  10. #
  11. # Requires: tidy and wget
  12. # apt-get install wget tidy (Ubuntu/Debian)
  13. # or yum install wget tidy (RedHat/CentOS/Fedora)
  14. #
  15.  
  16. # max downloads
  17. maxsearches=300
  18. # download path
  19. downloadpath="img"
  20.  
  21. # tmp dir (gets deleted)
  22. tmpdir=$(mktemp -d)
  23.  
  24. # read your search term
  25. read -p "enter search term: " search
  26. search=$(echo $search | tr ' ' '+')
  27.  
  28. # make folder for downloads
  29. mkdir -p $downloadpath || exit 1
  30.  
  31. # useragent (google search does not like wget usergent)
  32. useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6'
  33.  
  34. pushd $downloadpath &>/dev/null || exit 1
  35. num=0
  36. while [[ $num -lt $maxsearches ]]; do
  37.         prev=$num
  38.         let num=num+20
  39.  
  40.     # poor man's progress bar
  41.         echo -en "${prev} through ${num}..."
  42.  
  43.     # google url for search
  44.         googleurl="https://www.google.com/search?q=${search}&um=1&hl=en&safe=off&start=${num}&sa=N&tbm=isch&sout=1"
  45.  
  46.     # grab google results
  47.         wget --quiet -U "$useragent" -O ${tmpdir}/google "$googleurl"
  48.  
  49.     # clean up google output
  50.         tidy -q ${tmpdir}/google 2>/dev/null > ${tmpdir}/google.tidy
  51.  
  52.     # grab urls
  53.         grep http ${tmpdir}/google.tidy | sed -e 's:amp:\n:g' | grep imgurl | sed -e 's:".*imgurl=::g' -e 's:\&$::g' > ${tmpdir}/urls
  54.  
  55.     # download all urls
  56.         for url in $(cat ${tmpdir}/urls); do
  57.                 wget --timeout=2 --dns-timeout=3 --connect-timeout=2 --read-timeout=3 \
  58.                      --quiet -U "$useragent" -A jpg,png,gif "$url"
  59.         # progress bar
  60.                 echo -en "."
  61.         done
  62.    
  63.     # clean up
  64.         echo "done."
  65. done
  66.  
  67. rm -rf ${tmpdir}
  68. popd &>/dev/null
  69.  
  70. exit 0
Add Comment
Please, Sign In to add comment