Guest User

Untitled

a guest
Feb 3rd, 2019
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. from selenium.webdriver.support.ui import WebDriverWait
  4. from selenium.common.exceptions import StaleElementReferenceException
  5. import time
  6.  
  7. print("ENTER MAIL: ")
  8. mail = input()
  9. print("ENTER PASSWORD: ")
  10. pas = input()
  11.  
  12.  
  13. driver= webdriver.Firefox()
  14. driver.get('https://www.udemy.com')
  15. print("GOT URLn")
  16. time.sleep(5)
  17.  
  18. driver.find_element_by_xpath("//button[@data-purpose='header-login']").click()
  19. print("OPEN LOGIN FORMn")
  20. time.sleep(5)
  21.  
  22. webdriver.ActionChains(driver).move_by_offset(570, 295).click().send_keys(mail).perform()
  23. time.sleep(5)
  24. print("PRINT MAILn")
  25.  
  26. webdriver.ActionChains(driver).move_by_offset(100, 65).click().send_keys(pas).perform()
  27. time.sleep(5)
  28. print("PRINT PASSWORDn")
  29.  
  30. webdriver.ActionChains(driver).move_by_offset(0, 60).click().perform()
  31. time.sleep(5)
  32. print("AUTORIZATIONn")
  33.  
  34. driver.find_element_by_xpath("//a[@data-purpose='my-courses']").click()
  35. time.sleep(6)
  36. print("GO TO URLn")
  37.  
  38. #strongs = driver.find_elements_by_xpath("//strong[@class = 'details__name']")
  39.  
  40. f = open('udemy_titles','w', encoding='utf8')
  41. f.write("USERNAME: ")
  42. f.write(mail + "n")
  43. f.write("PASSWORD: ")
  44. f.write(pas + "n")
  45. f.write("TOTAL COURSES: ")
  46.  
  47. try:
  48. div = driver.find_element_by_xpath("//div[@class='pager-label']").text
  49. div_1 = div.split(" ")[-2]
  50. f.write(div_1 + "n")
  51. hrf = driver.find_element_by_xpath("//ul[@class='pagination pagination-expanded']/li[7]").text
  52. y = 0
  53. while int(hrf) > y:
  54. # strongs = driver.find_elements_by_xpath("//strong[@class = 'details__name']")
  55. # time.sleep(1)
  56. driver.implicitly_wait(10)
  57. strongs = driver.find_elements_by_xpath("//strong[@class = 'details__name']")
  58. for strong in strongs:
  59. print(strong.text)
  60. y += 1
  61. f.write("COURSE " + "#")
  62. f.write(str(y) + ": ")
  63. f.write(strong.text + "n")
  64. driver.find_element_by_xpath("//span[@class = 'pagination-next udi udi-next']").click()
  65. time.sleep(5)
  66. #driver.get('https://www.udemy.com/home/my-courses/learning/?p=8')
  67.  
  68. except:
  69. print("ONE PAGEn")
  70.  
  71. selem = 0
  72. for strong in strongs:
  73. print(strong.text)
  74. selem += 1
  75. f.write("COURSE " + "#")
  76. f.write(str(selem) + ": ")
  77. f.write(strong.text + "n")
  78.  
  79. f.close()
  80.  
  81. driver.close()
  82. time.sleep(2)
  83.  
  84. from selenium import webdriver
  85. from selenium.webdriver.common.keys import Keys
  86. from selenium.webdriver.support.ui import WebDriverWait
  87. from selenium.common.exceptions import StaleElementReferenceException
  88. from selenium.webdriver.support import expected_conditions as EC
  89. from selenium.webdriver.common.by import By
  90. import time
  91.  
  92. def parse_pagination(driver):
  93. #Находим элемент Ul у pagination
  94. ul_pagination = driver.find_element_by_css_selector("ul.pagination.pagination-expanded")
  95. #Находим li элементы, берем предпоследний элемент
  96. li_pagination = ul_pagination.find_elements_by_css_selector("li")[-2]
  97. #Определяем количество страниц
  98. count_page = int(li_pagination.find_element_by_css_selector("a").text)
  99. #Здесь будят хранятся ссылки
  100. urls = []
  101. for i in range(2, count_page + 1):
  102. urls.append("https://www.udemy.com/home/my-courses/learning/?p=" + str(i))
  103. return urls
  104.  
  105. def parse_list(driver):
  106. #Набор карточек, ожидаем появления
  107. div_card_wrapper = WebDriverWait(driver, 10).until(
  108. EC.visibility_of_element_located((By.CSS_SELECTOR, "div.card-wrapper")))
  109. # Карточки
  110. div_cards = div_card_wrapper.find_elements_by_css_selector("div.card.card--learning")
  111. for div_card in div_cards:
  112. #Ссылка
  113. a = div_card.find_element_by_css_selector("a.card--learning__details > div > strong")
  114. name = a.text
  115. print(name)
  116.  
  117.  
  118. print("ENTER MAIL: ")
  119. mail = ""
  120. print("ENTER PASSWORD: ")
  121. pas = ""
  122.  
  123.  
  124. driver= webdriver.Firefox()
  125. driver.get('https://www.udemy.com')
  126. print("GOT URLn")
  127. time.sleep(5)
  128.  
  129. driver.find_element_by_xpath("//button[@data-purpose='header-login']").click()
  130. print("OPEN LOGIN FORMn")
  131. time.sleep(5)
  132.  
  133. webdriver.ActionChains(driver).move_by_offset(570, 295).click().send_keys(mail).perform()
  134. time.sleep(5)
  135. print("PRINT MAILn")
  136.  
  137. webdriver.ActionChains(driver).move_by_offset(100, 65).click().send_keys(pas).perform()
  138. time.sleep(5)
  139. print("PRINT PASSWORDn")
  140.  
  141. webdriver.ActionChains(driver).move_by_offset(0, 60).click().perform()
  142. time.sleep(5)
  143. print("AUTORIZATIONn")
  144.  
  145. driver.find_element_by_xpath("//a[@data-purpose='my-courses']").click()
  146. time.sleep(6)
  147. print("GO TO URLn")
  148.  
  149. #strongs = driver.find_elements_by_xpath("//strong[@class = 'details__name']")
  150.  
  151. f = open('udemy_titles','w', encoding='utf8')
  152. f.write("USERNAME: ")
  153. f.write(mail + "n")
  154. f.write("PASSWORD: ")
  155. f.write(pas + "n")
  156. f.write("TOTAL COURSES: ")
  157.  
  158.  
  159. parse_list(driver)
  160. urls = parse_pagination(driver)
  161. for url in urls:
  162. driver.get(url)
  163. parse_list(driver)
  164.  
  165. driver.close()
  166. time.sleep(2)
Add Comment
Please, Sign In to add comment