46 lines
1012 B
Python
Executable File
46 lines
1012 B
Python
Executable File
import argparse
|
|
import requests
|
|
import sys
|
|
|
|
import cloudscraper
|
|
|
|
from bs4 import BeautifulSoup
|
|
|
|
import lib.Config as conf
|
|
|
|
|
|
def get_page_soup(url):
|
|
scraper = cloudscraper.create_scraper()
|
|
page = scraper.get(url)
|
|
if page.status_code == 200:
|
|
return BeautifulSoup(page.content, 'html.parser')
|
|
else:
|
|
return None
|
|
|
|
|
|
def download_file(name, url):
|
|
scraper = cloudscraper.create_scraper()
|
|
page = scraper.get(url)
|
|
data = page.content
|
|
open(name, 'wb').write(data)
|
|
|
|
|
|
def loop_exec(funct = None, data = None):
|
|
for word in data:
|
|
word = word.strip()
|
|
funct(word)
|
|
|
|
|
|
def __main__(funct):
|
|
desc = "Download audio snippets from Japanese dictionaries"
|
|
parser = argparse.ArgumentParser(description=desc)
|
|
|
|
parser.add_argument("words", nargs="*")
|
|
argv = parser.parse_args()
|
|
|
|
if len(argv.words) > 0: # parse args
|
|
loop_exec(funct = funct, data = argv.words)
|
|
else: # parse pipe
|
|
loop_exec(funct = funct, data = sys.stdin)
|
|
|