Esempio n. 1
0
    def driver_start(self, is_headless=False):
        '''
        Start driver
        
            구글 드라이버 실행
        
        Parameter
        -----------------------------
        
            start_date: 지정한 날짜부터 크롤링 시작
        
        '''

        version = chromedriver_autoinstaller.get_chrome_version()[:2]
        if is_headless:
            webdriver_options = webdriver.ChromeOptions()
            webdriver_options.add_argument('headless')

            try:
                self.driver = webdriver.Chrome(
                    'C:\\Users\\Chan\\.conda\\envs\\baseball\\lib\\site-packages\\chromedriver_autoinstaller\\'
                    + version + '\\chromedriver',
                    options=webdriver_options)

            except:
                chromedriver_autoinstaller.install()
        else:
            try:
                self.driver = webdriver.Chrome(
                    'C:\\Users\\Chan\\.conda\\envs\\baseball\\lib\\site-packages\\chromedriver_autoinstaller\\'
                    + version + '\\chromedriver')

            except:
                chromedriver_autoinstaller.install()
    def __init__(self):
        super().__init__()
        global driver_path
        # Download Chromedriver
        if chrome_check == 0:
            QMessageBox.information(self, 'Chrome Browser', '크롬 브라우져를 설치해주세요.',
                                    QMessageBox.Ok, QMessageBox.Ok)
            quit()
        if check == 0:
            QMessageBox.information(self, 'ChromeDriver', '필요한 프로그램을 다운받습니다.',
                                    QMessageBox.Ok, QMessageBox.Ok)
            log("Download Chromedriver")
            version = chromedriver_autoinstaller.get_chrome_version().split(
                '.')[0]
            doc = urllib.request.urlopen(
                'https://chromedriver.storage.googleapis.com',
                context=context).read()
            root = elemTree.fromstring(doc)
            for k in root.iter('{http://doc.s3.amazonaws.com/2006-03-01}Key'):
                if k.text.find(get_major_version(version) + '.') == 0:
                    chromedriver_version = (k.text.split('/')[0])
            print(chromedriver_version)

            chrome_version_url = 'https://chromedriver.storage.googleapis.com/' + chromedriver_version + '/chromedriver_mac64.zip'
            download(chrome_version_url, path + "/chromedriver.zip")

            fantasy_zip = zipfile.ZipFile(path + '/chromedriver.zip')
            fantasy_zip.extractall(path)
            os.chmod(path + '/chromedriver', 755)

        elif check == 1:
            log("Chromedriver is installed")

        self.setupUi(self)
        self.setWindowIcon(QIcon('icon.ico'))  # Icon setting

        # Auto login check file (user.db)
        global auto_login_check
        auto_login_check = 0
        try:
            fileObj = Path("user.db")
            if fileObj.is_file() == True:
                conn = sqlite3.connect("user.db")
                cur = conn.cursor()
                cur.execute('select * from user')
                global user
                user = cur.fetchall()
                user_id = user[0][0]
                user_pw = user[0][1]
                self.login_id.setText(user_id)
                self.login_pw.setText(user_pw)
                auto_login_check = 1
        except:
            pass

        # Login Buttons
        self.login_button.clicked.connect(self.login)
        self.login_id.returnPressed.connect(self.listener_login_id)
        self.login_pw.returnPressed.connect(self.listener_login_pw)
Esempio n. 3
0
File: bot.py Progetto: hoommoos/bot
 def chromedriver():
     chrome_version = chromedriver_autoinstaller.get_chrome_version()
     logger.debug("Google Chrome version {0} is installed.".format(chrome_version))
     try:
         logger.debug("Checking and/or installing chromedriver")
         chromedriver_autoinstaller.install()
     finally:
         logger.debug("Chromedriver is ok.")
def initialize():
    chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[
        0]  # 크롬드라이버 버전 확인

    try:
        driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe')
    except:
        chromedriver_autoinstaller.install(True)
        driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe')

    driver.implicitly_wait(10)
    def __init__(self):
        super().__init__()
        global driver_path
        # Download Chromedriver
        if chrome_check == 0:
            QMessageBox.information(self, 'Chrome Browser', '크롬 브라우져를 설치해주세요.',
                                    QMessageBox.Ok, QMessageBox.Ok)
            quit()
        if check == 0:
            QMessageBox.information(self, 'ChromeDriver', '필요한 프로그램을 다운받습니다.',
                                    QMessageBox.Ok, QMessageBox.Ok)
            log("Download Chromedriver")
            chrome_ver = chromedriver_autoinstaller.get_chrome_version().split(
                '.')[0]
            driver_path = f'./{chrome_ver}/chromedriver.exe'
            if os.path.exists(driver_path):
                log(f"chrom driver is insatlled: {driver_path}")
            else:
                log(f"install the chrome driver(ver: {chrome_ver})")
                chromedriver_autoinstaller.install(True)

        elif check == 1:
            log("Chromedriver is installed")

        self.setupUi(self)
        self.setWindowIcon(QIcon('src\icon.ico'))  # Icon setting

        # Auto login check file (user.db)
        global auto_login_check
        auto_login_check = 0
        try:
            fileObj = Path("user.db")
            if fileObj.is_file() == True:
                conn = sqlite3.connect("user.db")
                cur = conn.cursor()
                cur.execute('select * from user')
                global user
                user = cur.fetchall()
                user_id = user[0][0]
                user_pw = user[0][1]
                self.login_id.setText(user_id)
                self.login_pw.setText(user_pw)
                auto_login_check = 1
        except:
            pass

        # Login Buttons
        self.login_button.clicked.connect(self.login)
        self.login_id.returnPressed.connect(self.listener_login_id)
        self.login_pw.returnPressed.connect(self.listener_login_pw)
Esempio n. 6
0
    def start_interpark(self):
        try:
            shutil.rmtree(r"c:\chrometemp")  # 쿠키 / 캐쉬파일 삭제
        except FileNotFoundError:
            pass

        subprocess.Popen(
            r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp"'
        )  # 디버거 크롬 구동

        option = Options()
        option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

        chrome_ver = chromedriver_autoinstaller.get_chrome_version().split(
            '.')[0]
        try:
            self.driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                                           options=option)
        except:
            chromedriver_autoinstaller.install(True)
            self.driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                                           options=option)
        self.driver.implicitly_wait(10)

        # 사이즈조절
        self.driver.set_window_size(1400, 1000)
        self.driver.get('https://ticket.interpark.com/Gate/TPLogin.asp')

        # 삭제해야 되는 부분
        self.driver.switch_to.frame(
            self.driver.find_element(
                By.XPATH,
                "//div[@class='leftLoginBox']/iframe[@title='login']"))
        userId = self.driver.find_element(By.ID, 'userId')
        userId.send_keys('kbyms104')
        userPwd = self.driver.find_element(By.ID, "userPwd")
        userPwd.send_keys('ghkdwp131!')
        userPwd.send_keys(Keys.ENTER)
Esempio n. 7
0
def chromedriver_update():
    ''' this function auto update chrome driver
     : there is no arguments
    '''
    chrome_ver = AutoChrome.get_chrome_version().split('.')[0]

    current_list = os.listdir(os.getcwd())
    chrome_list = []
    for i in current_list:
        path = os.path.join(os.getcwd(), i)
        if os.path.isdir(path):
            if 'chromedriver.exe' in os.listdir(path):
                chrome_list.append(i)

    old_version = list(set(chrome_list) - set([chrome_ver]))

    for i in old_version:
        path = os.path.join(os.getcwd(), i)
        shutil.rmtree(path)

    if not chrome_ver in current_list:
        AutoChrome.install(True)
    else:
        pass
Esempio n. 8
0
try:
    shutil.rmtree(r"c:\chrometemp")  #쿠키 / 캐쉬파일 삭제
except FileNotFoundError:
    pass

## 경로 설정을 따로 하지 않고 크롬 설치시 아래 경로가 기본값
subprocess.Popen(
    r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp"'
)

option = Options()
## 9222포트로 크롬을 염
option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                              options=option)
except:
    chromedriver_autoinstaller.install(True)
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                              options=option)
driver.implicitly_wait(10)


## 추출한 url에서 & 앞까지 끊어줌
def vidstrip(playlist):
    for i in range(len(playlist)):
        end = playlist[i].find("&")
        playlist[i] = playlist[i][:end]
Esempio n. 9
0
def grp(pat, txt):
    res = re.search(pat, txt)
    return res.group(0) if res else '&'


def find_files(filename, search_path):
    for root, _, files in os.walk(search_path):
        if filename in files:
            return os.path.abspath(os.path.join(root, filename))


chrome_version = ""
colorama.init()
try:
    PATH_DRIVER = chromedriver_autoinstaller.install(True)
    chrome_version = chromedriver_autoinstaller.get_chrome_version()
    print("Chrome version :", chrome_version)
except IndexError:
    PATH_DRIVER = find_files("chromedriver.exe", ".")
    print("Chrome version not found")
    print(
        termcolor.colored(
            'Chrome version not found{}'.format(colorama.Style.RESET_ALL),
            'yellow'))

chromedriver_version = ""
if sys.platform.startswith("win"):
    chromedriver_version = PATH_DRIVER.split("\\")[-2]
else:
    chromedriver_version = PATH_DRIVER.split("/")[-2]
if chrome_version.split(".")[0] == chromedriver_version:
Esempio n. 10
0
    res = re.search(pat, txt)
    return res.group(0) if res else '&'


def find_files(filename, search_path):
    for root, _, files in os.walk(search_path):
        if filename in files:
            return os.path.abspath(os.path.join(root, filename))


ua = UserAgent(verify_ssl=False)
USER_AGENT = sorted(ua.data_browsers["chrome"],
                    key=lambda a: grp(r'Chrome/[^ ]+', a))[-1]
try:
    PATH_DRIVER = chromedriver_autoinstaller.install(True)
    print("Chrome version :", chromedriver_autoinstaller.get_chrome_version())
except IndexError:
    PATH_DRIVER = find_files("chromedriver.exe", ".")
#except urllib.error.URLError:
#    print("Aucune connection internet")
#    sys.exit()
print(PATH_DRIVER)

PATH_DB = os.path.dirname(__file__) + "/resources/teams.db"

PATH_TOKENS = os.path.dirname(__file__) + "/bookmakers/tokens.txt"

PATH_FREEBETS = os.path.dirname(__file__) + "/freebets.txt"
if not os.path.exists(PATH_FREEBETS):
    with open(PATH_FREEBETS, "a+") as file:
        for bookmaker, rate in FREEBETS_RATES.items():
Esempio n. 11
0
    def Clear_CAPCHA(self):
        if CAPCHA_Error == 0:
            self.listWidget.addItem(
                '[system] 이 기능은 CAPCHA에 의해 진행이 막힌\n            후에 사용 가능합니다.')

        else:
            # ----------------------------------------------------------------------------------------------------
            '''사용자 입력 저장'''
            facebook_ID = self.lineEdit_ID.text()
            facebook_PW = self.lineEdit_PW.text()
            # ----------------------------------------------------------------------------------------------------

            # ----------------------------------------------------------------------------------------------------
            '''이스터에그'''
            if facebook_ID == 'sex' or facebook_PW == 'sex':
                self.listWidget.addItem(
                    '[system] 꼭 이런 빈칸만 있으면 \'sex\' 쳐보는\n            사람 있을 줄 알았다...'
                )

            elif facebook_ID == '윤태영' or facebook_PW == 'dbsxodud':
                self.listWidget.addItem(
                    '[system] ㅊㅋ! 이스터에그를 발견하셨습니다!\n            문자 주면 선물을 드립니다.'
                )

            elif facebook_ID == '' or facebook_PW == '':
                self.listWidget.addItem('[system] 입력란을 모두 채워주세요.')
            # ----------------------------------------------------------------------------------------------------

            else:  # 디버깅 크롬에 남은 기록 삭제
                try:
                    shutil.rmtree(f"c:\chrometemp")  #쿠키 / 캐쉬파일 삭제
                except FileNotFoundError:
                    pass

                # ----------------------------------------------------------------------------------------------------
                '''크롬 구동부'''
                option = Options()
                option.add_argument('start-maximized')  # 전체 화면
                chrome_ver = chromedriver_autoinstaller.get_chrome_version(
                ).split('.')[0]
                try:
                    driver = webdriver.Chrome(
                        f'./{chrome_ver}/chromedriver.exe', options=option)
                except:
                    chromedriver_autoinstaller.install(True)
                    driver = webdriver.Chrome(
                        f'./{chrome_ver}/chromedriver.exe', options=option)

                driver.implicitly_wait(10)  # 페이지 로딩 10초 기다려준다. 10초 후에는 얄짤없다.
                # ----------------------------------------------------------------------------------------------------

                # ----------------------------------------------------------------------------------------------------
                '''(밴드 입장 ~ 페이스북 로그인)'''
                driver.get('https://band.us/feed')

                driver.find_element_by_xpath(
                    '//*[@id="login_list"]/li[4]/a').click()  # '페이스북 로그인' 버튼

                driver.find_element_by_xpath('//*[@id="email"]').send_keys(
                    facebook_ID)
                driver.find_element_by_xpath('//*[@id="pass"]').send_keys(
                    facebook_PW)

                driver.find_element_by_xpath(
                    '//*[@id="loginbutton"]').click()  # 로그인 버튼
                # ----------------------------------------------------------------------------------------------------

                self.listWidget.addItem('[system] CAPCHA를 해제하고 크롬을 닫아주세요.')
Esempio n. 12
0
    def Checking_start(self):
        # ----------------------------------------------------------------------------------------------------
        '''사용자 입력 저장'''
        facebook_ID = self.lineEdit_ID.text()
        facebook_PW = self.lineEdit_PW.text()
        # ----------------------------------------------------------------------------------------------------

        # ----------------------------------------------------------------------------------------------------
        '''이스터에그'''
        if facebook_ID == '' or facebook_PW == '':
            self.listWidget.addItem('[system] 입력란을 모두 채워주세요.')
        # ----------------------------------------------------------------------------------------------------

        else:  # 디버깅 크롬에 남은 기록 삭제
            try:
                shutil.rmtree(f"c:\chrometemp")  #쿠키 / 캐쉬파일 삭제
            except FileNotFoundError:
                pass

            # ----------------------------------------------------------------------------------------------------
            '''크롬 구동부'''
            option = Options()
            option.add_argument('start-maximized')  # 전체 화면
            chrome_ver = chromedriver_autoinstaller.get_chrome_version().split(
                '.')[0]
            try:
                driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                                          options=option)
            except:
                chromedriver_autoinstaller.install(True)
                driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe',
                                          options=option)

            driver.implicitly_wait(10)  # 페이지 로딩 10초 기다려준다. 10초 후에는 얄짤없다.
            # ----------------------------------------------------------------------------------------------------

            # ----------------------------------------------------------------------------------------------------
            '''(밴드 입장 ~ 페이스북 로그인)'''
            driver.get('https://band.us/feed')

            driver.find_element_by_xpath(
                '//*[@id="login_list"]/li[4]/a').click()  # '페이스북 로그인' 버튼

            driver.find_element_by_xpath('//*[@id="email"]').send_keys(
                facebook_ID)
            driver.find_element_by_xpath('//*[@id="pass"]').send_keys(
                facebook_PW)

            driver.find_element_by_xpath(
                '//*[@id="loginbutton"]').click()  # 로그인 버튼

            # ----------------------------------------------------------------------------------------------------

            def First_Check():
                # (매크로 GUI가 맨 앞에 올라와 있으면 Alt+Tab 정상적으로 동작 X)
                pyautogui.keyDown('Alt')
                for j in range(1, 3):
                    pyautogui.press('Tab')
                pyautogui.keyUp('Alt')
                pyautogui.hotkey('Alt', 'Tab')

                while True:
                    new_feed = driver.find_elements_by_css_selector(
                        '#content > div > button.btnFeedTop._btnNewFeedUpdate[style=""]'
                    )  # '새글 보기' 버튼 나왔는지 확인

                    if len(new_feed) == 1:
                        driver.find_element_by_css_selector(
                            '#content > div > button.btnFeedTop._btnNewFeedUpdate[style=""]'
                        ).click()
                        break

                    else:
                        time.sleep(10)

                        for i in range(1, 3):
                            pyautogui.hotkey('Alt', 'Tab')

                time.sleep(0.5)
                driver.find_element_by_xpath(
                    '//*[@id="content"]/div/div[2]/div/section[1]/section/div/div/section/div/div[2]/div[2]/div/div'
                ).click()  # 출석체크 위젯
                time.sleep(0.2)
                try:
                    driver.find_element_by_class_name('etc').click()  # 출석체크 클릭

                except NoSuchElementException:
                    pass

            def Next_Checks():
                time.sleep(0.2)
                driver.find_element_by_xpath(
                    '//*[@id="wrap"]/div[2]/div/div/section/button[4]').click(
                    )  # 닫기 버튼

                while True:
                    new_feed = driver.find_elements_by_css_selector(
                        '#content > div > button.btnFeedTop._btnNewFeedUpdate[style="display: block;"]'
                    )  # '새글 보기' 버튼 나왔는지 확인

                    if len(new_feed) == 1:
                        driver.find_element_by_css_selector(
                            '#content > div > button.btnFeedTop._btnNewFeedUpdate[style="display: block;"]'
                        ).click()
                        break

                    else:
                        time.sleep(10)
                        for i in range(1, 3):
                            pyautogui.hotkey('Alt', 'Tab')

                time.sleep(0.5)
                driver.find_element_by_xpath(
                    '//*[@id="content"]/div/div[2]/div/section[1]/section/div/div/section/div/div[2]/div[2]/div/div'
                ).click()  # 출석체크 위젯
                time.sleep(0.2)
                try:
                    driver.find_element_by_class_name('etc').click()  # 출석체크 클릭

                except NoSuchElementException:
                    pass

            # ----------------------------------------------------------------------------------------------------
            '''(캡차 감지 ~ 출석체크 무한 츠쿠요미)'''
            try:
                driver.find_element_by_xpath('//*[@id="content"]/div/button[2]'
                                             )  # 캡차 떴는지 '새글 보기' 버튼 확인으로 떠보기

            except NoSuchElementException:
                pyautogui.hotkey('Alt', 'Tab')
                driver.close()
                self.listWidget.addItem(
                    '[system] CAPCHA 때문에 더 이상 진행할 수\n            없습니다. 5분 후에 다시 시도해주세요.'
                )

                global CAPCHA_Error
                CAPCHA_Error = 1  # 캡차로 인해 막힌 경우 == 1

            else:
                check_count = 1
                while True:
                    if check_count == 1:
                        First_Check()

                    else:
                        Next_Checks()
                    check_count += 1
Esempio n. 13
0
def get_chrome_version():
    """PC에 설치된 크롬 버전을 반환합니다"""
    return chromedriver_autoinstaller.get_chrome_version()
Esempio n. 14
0
import os
from selenium import webdriver
from time import sleep
import chromedriver_autoinstaller

drVer = str(chromedriver_autoinstaller.get_chrome_version())
drVer = drVer[0:drVer.index(".")]

banner = """
__        __               _     _       ____    _     _   _         
\ \      / / ___    __ _  | |_  | |__   / ___|  | |_  (_) | |   ___  
 \ \ /\ / / / _ \  / _` | | __| | '_ \  \___ \  | __| | | | |  / _ \ 
  \ V  V / |  __/ | (_| | | |_  | | | |  ___) | | |_  | | | | | (_) |
   \_/\_/   \___|  \__,_|  \__| |_| |_| |____/   \__| |_| |_|  \___/
----------------------------------------------------------------"""


def printBanner():
    os.system('cls' if os.name == 'nt' else 'clear')
    print(banner)


def printData(city, days, alert):
    printBanner()

    print(f"""Şehir : {city[0]} - {'Merkez' if city[1] == '' else city[1]}
Güncelleme Zamanı : {city[2]}
----------------------------------------------------------------
Günler    |  Sıcaklık  |   Nem   |             Durum            |
----------------------------------------------------------------
Şuan      |{city[3]:^12}|{city[4]:^9}|{city[5]:^30}|
Esempio n. 15
0
    driver.close()
    print("DEBUG MESSAGE: page closed.")
    news_list.append('\n\n------------- 미 증시 map 끝 ------------------')

    for msg in news_list:
        news_msg = news_msg + '\n' + msg
    print(news_msg)

    return news_msg


# auto update chrome driver
chromedriver_update()

chrome_ver = AutoChrome.get_chrome_version().split('.')[0]
path = os.path.join(os.getcwd(), chrome_ver)
path = os.path.join(path, 'chromedriver.exe')
print(path)

# -----------definition and basic setting-----------
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')

driver = webdriver.Chrome(path, options=options)

# setting locale to use Korean
locale.setlocale(locale.LC_ALL, '')

# setting slack token