Advertisement
Guest User

Untitled

a guest
Mar 26th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.35 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. import argparse, bs4, os, requests
  4.  
  5. parser = argparse.ArgumentParser()
  6. parser.add_argument("tag", help="Tag of danbooru gallery")
  7. parser.add_argument("extra_tags", nargs="*", help="Optional other tags")
  8. parser.add_argument("-d",  help="Directory to download to")
  9. args = parser.parse_args()
  10.  
  11. if args.d:
  12.     if not os.path.exists(args.d):
  13.         os.makedirs(args.d)
  14.     os.chdir(args.d)
  15.  
  16. base_url = "http://danbooru.donmai.us?tags=" + args.tag
  17.  
  18. if args.extra_tags:
  19.     for tag in args.extra_tags:
  20.         base_url = base_url + "+" + tag
  21.  
  22. html = requests.get(base_url).text
  23. soup = bs4.BeautifulSoup(html, "html.parser")
  24.  
  25. list_of_pages = []
  26.  
  27. for x in soup.find_all("li"):
  28.     try:
  29.         x = int(x.string)
  30.         list_of_pages.append(x)
  31.     except:
  32.         pass
  33.  
  34. max_page = max(list_of_pages) + 1
  35.  
  36. for page_number in range(1, max_page):
  37.  
  38.     url = base_url + "&page=" + str(page_number)
  39.     html = requests.get(url).text
  40.     soup = bs4.BeautifulSoup(html, "html.parser")
  41.  
  42.     for image in soup.find_all("article"):
  43.  
  44.         link = image.get("data-file-url")
  45.         filename = image.get("data-md5") + "." + image.get("data-file-ext")
  46.  
  47.         if not os.path.exists(filename):
  48.             raw_data = requests.get(link)
  49.             with open(filename, "wb") as anime:
  50.                 anime.write(raw_data.content)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement