Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from selenium import webdriver
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as cond
- from selenium.webdriver.common.by import By
- from selenium.common.exceptions import NoSuchElementException
- from selenium.common.exceptions import TimeoutException
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver.common.action_chains import ActionChains
- def wait_for_element(driver, max_time_waiting, xpath):
- try:
- WebDriverWait(driver, max_time_waiting).until(cond.presence_of_element_located((By.XPATH, xpath)))
- return True
- except TimeoutException:
- return False
- def check_exists_by_xpath(driver, xpath):
- try:
- driver.find_element_by_xpath(xpath)
- return True
- except NoSuchElementException:
- return False
- def open_new_tab(driver, url):
- driver.execute_script("window.open('%s');" % url)
- def close_tab(driver):
- driver.close()
- webdriver_path = "C:/Users/Andre/Desktop/python/files/chromedriver.exe"
- profile_path = "C:/Users/Andre/AppData/Local/Google/Chrome/User Data/"
- max_time_waiting = 10
- options_chrome = webdriver.ChromeOptions()
- options_chrome.add_argument("--user-data-dir=" + profile_path)
- driver = webdriver.Chrome(webdriver_path, options=options_chrome)
- url_aternos = "https://aternos.org/addons/list/%s/"
- xpath_mods = "//*[@class='plugin']"
- xpath_mod_name = "//*[@class='plugin-name']"
- xpath_title = "//*[@class='btn btn-invisible btn-clickme btn-small']" # TODO verificar se está nas outras
- xpath_error = "//*[@class='error']"
- n_url = 1 #Mudar sempre que para
- driver.get(url_aternos % str(n_url))
- wait_for_element(driver, 10, xpath_mods)
- ciclo = True
- with open('C:/Users/Andre/Desktop/python/projects/Selenium/Mods/mods_result.txt', "a") as file:
- file.write("1.15.2------------------------------------------------------------------------")#Mudar sempre que começa
- while ciclo:
- n_name = 0
- urls = []
- url_names = []
- for element in driver.find_elements_by_xpath(xpath_mods):
- urls.append(element.get_attribute("href"))
- url_names.append(element.text)
- for url in urls:
- driver.get(url)
- wait_for_element(driver, 10, xpath_title)
- if not check_exists_by_xpath(driver, xpath_error):
- try:
- file.write("\n" + url_names[n_name] + "\n")
- except UnicodeEncodeError:
- file.write("Unicode error, pag" + str(n_url))
- n_name += 1
- n_url += 1
- driver.get(url_aternos % str(n_url))
- ciclo = wait_for_element(driver, 10, xpath_mods)
- time.sleep(30)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement