diff --git a/.gitignore b/.gitignore index 15f6727..3a738e6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ env/ files/ __pycache__/ *.tar.gz +*.log diff --git a/__pycache__/pir_connector.cpython-37.pyc b/__pycache__/pir_connector.cpython-37.pyc index 3597b25..49b76de 100644 Binary files a/__pycache__/pir_connector.cpython-37.pyc and b/__pycache__/pir_connector.cpython-37.pyc differ diff --git a/main.py b/main.py index 8b04cf1..e6e7e26 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,3 @@ -import pir_connector +from pir_connector import * - -pir_connector.downloadSong("https://www.partnersinrhyme.com/files/Happy_Carefree_Music/samples/files/Carefree_Bluegrass.mp3", "Carefree_Bluegrass.mp3", "Happy_Carefree_Music") +getCollection("https://www.partnersinrhyme.com/royaltyfreemusic/Corporate-Music-and-Motivational-Music/happymusic") diff --git a/pir_connector.py b/pir_connector.py index 51bf27d..55a8b3d 100644 --- a/pir_connector.py +++ b/pir_connector.py @@ -1,15 +1,45 @@ import requests import json import os +import time from bs4 import BeautifulSoup +from selenium import webdriver +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support.expected_conditions import presence_of_element_located +from selenium.webdriver.firefox.options import Options + +options = Options() +options.headless = True base_url = "https://www.partnersinrhyme.com/royaltyfreemusic" -base_files_url = "https://www.partnersinrhyme.com/files" +base_files_url = "https://www.partnersinrhyme.com/files/" base_out_url = "files/" -def downloadSong(song_url, song_file, collection_name): +def getCollection(collection_url): + r = requests.get(collection_url) + soup = BeautifulSoup(r.text, 'html.parser') + player = soup.iframe["src"]; + + p = requests.get("http:" + player); + + with webdriver.Firefox(options=options) as driver: + driver.get("http:" + player) + el = WebDriverWait(driver, 60).until(f) + + time.sleep(1) + psoup = BeautifulSoup(driver.page_source, 'html.parser') + + driver.quit() + + for li in psoup.find_all("li"): + print("downloading...", li.attrs['data-mp3']) + downloadSong(base_files_url + li.attrs['data-mp3']) + +def downloadSong(song_url): + (collection_name, outFile) = getSongFromURL(song_url); outDir = base_out_url + collection_name - outFile = song_file; if not os.path.exists(outDir): os.makedirs(outDir) @@ -19,4 +49,10 @@ def downloadSong(song_url, song_file, collection_name): with open(os.path.join(outDir, outFile), 'wb') as tempFile: tempFile.write(i.content) -# def getCollection(collection_name): +def getSongFromURL(song_url): + list = song_url.split("/") + print(list) + return (list[4], list[-1]) + +def f(d): + return d.find_element_by_class_name("listContainer")