diff options
Diffstat (limited to 'stealIfunny')
-rwxr-xr-x | stealIfunny | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/stealIfunny b/stealIfunny deleted file mode 100755 index 0b21710..0000000 --- a/stealIfunny +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/python3 -import requests -import urllib.request -import sys -import os -import argparse -import time - -parser = argparse.ArgumentParser(add_help=True) - -parser.add_argument('-js','-JS',"--Javascript",'--javascript', - default=False, - action='store_true', - dest='usingJavascript', - help='Enables the user of a webdriver to scrape funnies' - ) - -parser.add_argument('--amount','-a', - default=0, - dest='amount', - action="store", - help="the amount of funnies you'd like to download per tag", - type=int - ) - -parser.add_argument('tags', - nargs='+', - type=str, - help='Provides tags to be check for funny downloading' - ) - -args = parser.parse_args() - -if not args.usingJavascript: - from bs4 import BeautifulSoup - print("using html mode...") - for tags in args.tags: - URL = requests.get('https://ifunny.co/tags/' + tags + '?filter=video') - webpage = BeautifulSoup(URL.content, 'html.parser') - videos = webpage.findAll('video') - epoch = len([item for item in os.listdir('/home/'+ os.environ['USER'] + '/Videos/unsorted/')]) - if args.amount > 0: - videos = video[:arg.amount] - for video in videos: - epoch = epoch + 1 - print(video['data-src']) - urllib.request.urlretrieve(video['data-src'], '/home/' + os.environ['USER'] + '/Videos/unsorted/' + str(epoch) + '.mp4') -elif args.usingJavascript: - from selenium import webdriver - print("using JS mode...") - - try: - from selenium.webdriver.firefox.options import Options - firefox_options = Options() - firefox_options.add_argument("--headless") - driver = webdriver.Firefox(options=firefox_options) - - except: - try: - from selenium.webdriver.chrome.options import Options - chrome_options = Options() - chrome_options.add_argument("--headless") - driver = webdriver.Chrome(options=chrome_options) - except: - try: - from selenium.webdriver.firefox.options import Options - firefox_options = Options() - firefox_options.add_argument("--headless") - driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(), options=firefox_options) - except: - try: - from selenium.webdriver.chrome.options import Options - chrome_options = Options() - chrome_options.add_argument("--headless") - driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install(), options=chrome_options) - except: - print("Could not find webdriver!") - print("You'll have to manually install a webdriver to your path") - print("If you are using GNU/Linux, it is likely that you can install from your standard repos. Debian labels their chromium driver chromium-driver. If you wish to use an ungoogled version of chromium (as to reduce possiblity of spying), you can find a link to that here: https://github.com/Eloston/ungoogled-chromium#downloads. On Debian (or debian likes such as Ubuntu or Devuan), you may then run apt install ungoogled-chromium-driver and this will no longer fail.") - sys.exit() - for tags in args.tags: - driver.get('https://ifunny.co/tags/' + tags + '?filter=video') - if args.amount > 0: - isTimesScrolled = 0 - oughtTimeScrolled = (args.amount/10) + 1 - while isTimesScrolled < int(oughtTimeScrolled): - driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") - isTimesScrolled = isTimesScrolled + 1 - time.sleep(3) - videos = driver.find_elements_by_tag_name("video") - if args.amount > 0: - videos = videos[:args.amount] - epoch = len([item for item in os.listdir('/home/'+ os.environ['USER'] + '/Videos/unsorted/')]) - for video in videos: - print("saving " + video.get_attribute("data-src") + " as " + '/home/' + os.environ['USER'] + '/Videos/unsorted/' + str(epoch) + '.mp4') - urllib.request.urlretrieve(video.get_attribute("data-src"), '/home/' + os.environ['USER'] + '/Videos/unsorted/' + str(epoch) + '.mp4') - driver.quit() - - -else: - print("Neither Javascript or HTML was given!") - sys.exit(1) - - - |