From 0f77e6a69a7b0192c0e71bfd7a31fcf9e03dbe2c Mon Sep 17 00:00:00 2001 From: Alexander Matson Date: Mon, 14 Jan 2019 12:34:19 -0500 Subject: [PATCH] working album fetching --- .gitignore | 1 + __pycache__/pir_connector.cpython-37.pyc | Bin 723 -> 2040 bytes main.py | 5 ++- pir_connector.py | 44 ++++++++++++++++++++--- 4 files changed, 43 insertions(+), 7 deletions(-) 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 3597b25f0e9cde5f41b0d1e8412ab075f54f9560..49b76deec790ccd05e2db91cb8d1dc08ca9f3dad 100644 GIT binary patch literal 2040 zcmah~OOG5i5VqZq>3Qxm*=!yhA`vu5nE@pS6h#OnQ8<7Wk$@IiL8G3rXV(+=Bet8_ z8TFhtSCqdndxIN4fHOa$ublQTVYQGPXZcX8{^3^snMFVeHkTnT6cCJ8%dKk zogKo7{*j)!)rOIW{KO_xkX&Jo!l*J%MDgL!;jF9w-%AvWKkJSwpe{1 zof3Fw+w82zd*~EadGYcP9RfeTMNiNVpdn9cOYYOT-pG)s@F&M?+|;IcO;lbz6x%=c=CzH5g@S3j1WL zm(Qv;;PCKb<6T%qUj>111GjL4bVvtx@Fsx~iSQ=e%DON3X0fp#IleJ43@Ra;&&UEV zh`}Y^vm7H6Z|Rrb8P*>gvJ9*R3<#Gs$4uWuE}~v~B{?ION3XUW`x>P`Y1-I#ctH*- zG97kXRR>OQ;e4#JBwF}bQM`HqY z;vc-m{c|6J&;Np}OR7NUQW&)ZQ(dAy1XcMGAb9s!*THiK9&Hn8lOADZ=Pr(8%j)7d z_J6QG4s1&fXxlFO5YUPR^t3LfR~`G;&2TsyjAX3!zyby(i`lye*n}lNgGbx%Mp)T# z_nJ!&^(O$n`T%Cs76|GM^<7u9G}5p`DvD%Puh-YZ-bMGeZ8gc#-f*TYF7$(c4|xvl zT?IDi#(RQvk>{B*y+W)SLGM3e_(=|h#hEQJCS3DZHM{W5_q;S-^_bq9E~X*~bPb0_ z$2?}x-ZhOJpMibqlJ(xO!q%Uoj7yXQ>@84jA5fNYRdheeSRwi6Hih~YhzPQ4@7CKl Q32{h#3^$2(qE;0A4FZ7~GXMYp delta 501 zcmYLF!D<^Z5Yt0O%7=A<#>p^&v$Bf^8{bjqFV&ErGCZ z4#_=){Q>*fQ=$Eo-u4Gd{~*VV_R6b1WcROk zGHTeIOAbUa87VGf70E=!D!C<6C>W8U_!r8KhS2o)^tkl-S!qT^d2#iw{tho|0~@f5 zZ1?&qKFf`EZ>KC2pe5)X^nG-9g5XI-pOGc2V97nq=!#Wr4ephP6%P!Ek5+L-*079x z(q@Q?ReVhq+|awtWn9IpP8H3%A@`Ul@|k=gUonO`=}|*3C&MT8Z~i82gw@|l?YwK) zx%Ty6zWphY!WE12)6yE*X;~OprqjY0J@t99I9-hATE<1`4{|FLjE9)fKrV&X^NS#U z5S!LN*@x?%DlQkM7^@Nf8CL5C2m}Oh+Ji3b(k-wXcr)zSum#Cy*waRVvWa_dX<%Y9 tcDkKt(6V-gL0gW`ZM{tc`wvf1HsVD#FH~vtM?l%O7T8)qk8;369|3H=cvk=b 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")