Skip to content

Instantly share code, notes, and snippets.

@avamsi
Created October 25, 2016 14:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avamsi/69bc690f5f810ee9dfec8fbc51d8dcbc to your computer and use it in GitHub Desktop.
Save avamsi/69bc690f5f810ee9dfec8fbc51d8dcbc to your computer and use it in GitHub Desktop.
# from logging import warning
from time import sleep
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 import expected_conditions
def wait_for_element(browser, how, selector, *, multiple=False, timeout=10):
ec_method = expected_conditions.presence_of_element_located
if multiple:
ec_method = expected_conditions.presence_of_all_elements_located
return WebDriverWait(browser, timeout).until(ec_method((how, selector)))
email = '--'
password = '--'
course_url = input()
browser = webdriver.Firefox()
browser.get('https://www.linkedin.com')
wait_for_element(browser, By.ID, 'login-email').send_keys(email)
password_el = browser.find_element_by_id('login-password')
password_el.send_keys(password)
password_el.send_keys(Keys.RETURN)
sleep(10) # TODO: Temporary workaround.
browser.get(course_url)
lecture_elements = wait_for_element(browser, By.CSS_SELECTOR,
'.course-toc > li > div > div > a',
multiple=True)
lecture_links = [el.get_attribute('href') for el in lecture_elements]
for link in lecture_links:
browser.get(link.rsplit('?autoplay', 1)[0])
try:
video_el = wait_for_element(browser, By.TAG_NAME, 'video')
video_link = video_el.get_attribute('src')
print(video_link, video_link.rsplit('/', 1)[1].split('?', 1)[0])
except:
# warning('', exc_info=True)
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment