├── .gitignore ├── README.md ├── captchas └── captcha.png ├── check.py ├── output └── output.csv ├── requirements.txt ├── run.bat └── sample.csv /.gitignore: -------------------------------------------------------------------------------- 1 | # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig 2 | # Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,python 3 | # Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,python 4 | 5 | ### Python ### 6 | # Byte-compiled / optimized / DLL files 7 | __pycache__/ 8 | proxy/ 9 | *.py[cod] 10 | *$py.class 11 | setup.ini 12 | 13 | # C extensions 14 | *.so 15 | 16 | # Distribution / packaging 17 | .Python 18 | build/ 19 | develop-eggs/ 20 | dist/ 21 | downloads/ 22 | eggs/ 23 | .eggs/ 24 | lib/ 25 | lib64/ 26 | parts/ 27 | sdist/ 28 | var/ 29 | wheels/ 30 | share/python-wheels/ 31 | *.egg-info/ 32 | .installed.cfg 33 | *.egg 34 | MANIFEST 35 | 36 | # PyInstaller 37 | # Usually these files are written by a python script from a template 38 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 39 | *.manifest 40 | *.spec 41 | 42 | # Installer logs 43 | pip-log.txt 44 | pip-delete-this-directory.txt 45 | 46 | # Unit test / coverage reports 47 | htmlcov/ 48 | .tox/ 49 | .nox/ 50 | .coverage 51 | .coverage.* 52 | .cache 53 | nosetests.xml 54 | coverage.xml 55 | *.cover 56 | *.py,cover 57 | .hypothesis/ 58 | .pytest_cache/ 59 | cover/ 60 | 61 | # Translations 62 | *.mo 63 | *.pot 64 | 65 | # Django stuff: 66 | *.log 67 | local_settings.py 68 | db.sqlite3 69 | db.sqlite3-journal 70 | 71 | # Flask stuff: 72 | instance/ 73 | .webassets-cache 74 | 75 | # Scrapy stuff: 76 | .scrapy 77 | 78 | # Sphinx documentation 79 | docs/_build/ 80 | 81 | # PyBuilder 82 | .pybuilder/ 83 | target/ 84 | 85 | # Jupyter Notebook 86 | .ipynb_checkpoints 87 | 88 | # IPython 89 | profile_default/ 90 | ipython_config.py 91 | 92 | # pyenv 93 | # For a library or package, you might want to ignore these files since the code is 94 | # intended to run in multiple environments; otherwise, check them in: 95 | # .python-version 96 | 97 | # pipenv 98 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 99 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 100 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 101 | # install all needed dependencies. 102 | #Pipfile.lock 103 | 104 | # poetry 105 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 106 | # This is especially recommended for binary packages to ensure reproducibility, and is more 107 | # commonly ignored for libraries. 108 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 109 | #poetry.lock 110 | 111 | # pdm 112 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 113 | #pdm.lock 114 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 115 | # in version control. 116 | # https://pdm.fming.dev/#use-with-ide 117 | .pdm.toml 118 | 119 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 120 | __pypackages__/ 121 | 122 | # Celery stuff 123 | celerybeat-schedule 124 | celerybeat.pid 125 | 126 | # SageMath parsed files 127 | *.sage.py 128 | 129 | # Environments 130 | .env 131 | .venv 132 | env/ 133 | venv/ 134 | ENV/ 135 | env.bak/ 136 | venv.bak/ 137 | 138 | # Spyder project settings 139 | .spyderproject 140 | .spyproject 141 | 142 | # Rope project settings 143 | .ropeproject 144 | 145 | # mkdocs documentation 146 | /site 147 | 148 | # mypy 149 | .mypy_cache/ 150 | .dmypy.json 151 | dmypy.json 152 | 153 | # Pyre type checker 154 | .pyre/ 155 | 156 | # pytype static type analyzer 157 | .pytype/ 158 | 159 | # Cython debug symbols 160 | cython_debug/ 161 | 162 | # PyCharm 163 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 164 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 165 | # and can be added to the global gitignore or merged into this file. For a more nuclear 166 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 167 | #.idea/ 168 | 169 | ### Python Patch ### 170 | # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration 171 | poetry.toml 172 | 173 | # ruff 174 | .ruff_cache/ 175 | 176 | # LSP config files 177 | pyrightconfig.json 178 | 179 | ### VisualStudioCode ### 180 | .vscode/* 181 | !.vscode/settings.json 182 | !.vscode/tasks.json 183 | !.vscode/launch.json 184 | !.vscode/extensions.json 185 | !.vscode/*.code-snippets 186 | 187 | # Local History for Visual Studio Code 188 | .history/ 189 | 190 | # Built Visual Studio Code Extensions 191 | *.vsix 192 | 193 | ### VisualStudioCode Patch ### 194 | # Ignore all local history of files 195 | .history 196 | .ionide 197 | 198 | ### Windows ### 199 | # Windows thumbnail cache files 200 | Thumbs.db 201 | Thumbs.db:encryptable 202 | ehthumbs.db 203 | ehthumbs_vista.db 204 | 205 | # Dump file 206 | *.stackdump 207 | 208 | # Folder config file 209 | [Dd]esktop.ini 210 | 211 | # Recycle Bin used on file shares 212 | $RECYCLE.BIN/ 213 | 214 | # Windows Installer files 215 | *.cab 216 | *.msi 217 | *.msix 218 | *.msm 219 | *.msp 220 | 221 | # Windows shortcuts 222 | *.lnk 223 | 224 | # End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,python 225 | 226 | # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) 227 | 228 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Queue-it Captcha Bypass 2 | 3 | Queue-it Captcha Bypass is a Python script using Selenium to elegantly bypass Queue-it captchas and fetch event identifiers swiftly. 4 | 5 | ## Features 6 | 7 | - **Captcha Bypass**: Seamlessly bypass Queue-it captchas. 8 | 9 | - **Event Identifier Retrieval**: Quickly fetch the event identifiers for smooth processing. 10 | 11 | ## Usage 12 | 13 | To use GitHub Username Checker, follow these simple steps: 14 | 15 | 1. **Clone this Repository**: Begin by cloning this repository to your local machine using the following command: 16 | 17 | ```bash 18 | git clone https://github.com/ahmedmujtaba1/Queue-Checker-Python.git 19 | 20 | 2. **Run the Script**: Begin by running command in `cmd` : 21 | 22 | ```bash 23 | python check.py 24 | 25 | Queue-it Captcha Bypass streamlines the process of handling captchas, providing a convenient solution for fetching event identifiers. Explore the capabilities and enhance your automated workflows with this efficient Python script. 26 | 27 | Made By Ahmed Mujtaba. 28 | -------------------------------------------------------------------------------- /captchas/captcha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ahmedmujtaba1/Queue-Checker-Python/e4b1b9009c3a0ad11653b008790b0083ea2b1878/captchas/captcha.png -------------------------------------------------------------------------------- /check.py: -------------------------------------------------------------------------------- 1 | # ______________________________ MODULES ___________________________________ 2 | 3 | # Make sure install all modules using pip. 4 | 5 | from selenium.webdriver.common.by import By 6 | from seleniumwire import webdriver 7 | from webdriver_manager.chrome import ChromeDriverManager 8 | from selenium.webdriver.common.by import By 9 | from selenium.webdriver.support.wait import WebDriverWait 10 | from selenium.webdriver.support import expected_conditions as EC 11 | from selenium.webdriver.common.action_chains import ActionChains 12 | from selenium.webdriver.common.keys import Keys 13 | from twocaptcha import TwoCaptcha 14 | import configparser, time, csv 15 | 16 | 17 | 18 | ### ______________________________ INIT _____________________________________ 19 | 20 | config = configparser.ConfigParser() 21 | config.read('setup.ini') 22 | two_captcha_api = config.get("admin","2captcha_api_key") 23 | solver = TwoCaptcha(apiKey=two_captcha_api) 24 | USERNAME = config.get("admin","USERNAME") 25 | PASSWORD = config.get("admin","PASSWORD") 26 | ENDPOINT = "pr.oxylabs.io:7777" 27 | 28 | ## _______________________________ BOT _____________________________________ 29 | 30 | 31 | # #Saving in csv outline 32 | # with open('output/output.csv', 'w', encoding="utf-8") as f: 33 | # writer = csv.writer(f) 34 | # writer.writerow(['URL', 'Identifacador de fila', 'última actualización']) 35 | 36 | 37 | #Connecting to proxy 38 | def chrome_proxy(user: str, password: str, endpoint: str) -> dict: 39 | wire_options = { 40 | "proxy": { 41 | "http": f"http://{user}:{password}@{endpoint}", 42 | "https": f"http://{user}:{password}@{endpoint}", 43 | } 44 | } 45 | 46 | return wire_options 47 | 48 | #main function 49 | def execute_driver(total_num): 50 | start_time = time.time() 51 | proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT) 52 | 53 | #Defining Chrome Options 54 | chrome_options = webdriver.ChromeOptions() 55 | 56 | # User Agent 57 | user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/114.0.5735.99 Mobile/15E148 Safari/604.1" 58 | chrome_options.add_argument(f'user-agent={user_agent}') 59 | 60 | # Opening it headless 61 | chrome_options.add_argument(f'--headless') 62 | chrome_options.add_argument("--log-level=3") 63 | print("[+] Opening Chrome ") 64 | # driver = webdriver.Chrome(options=chrome_options, seleniumwire_options=proxies) 65 | driver = webdriver.Chrome(options=chrome_options) 66 | # driver.maximize_window() 67 | try: 68 | # MAIN URL 69 | # url = 'https://dfentertainment.queue-it.net/softblock/?c=dfentertainment&e=redhotconcertweek&cid=es-CL&rticr=0' 70 | url = 'https://dfentertainment.queue-it.net/?c=dfentertainment&e=lollalup240943&cid=es-CL' 71 | driver.get(url) 72 | print('[+] Output will shown below. ') 73 | flag = True 74 | while flag: 75 | time.sleep(2) 76 | wait = WebDriverWait(driver, 5) 77 | captcha_image = wait.until(EC.presence_of_element_located((By.XPATH,"//img[@class='captcha-code']"))) 78 | captcha_image.screenshot('captchas/captcha.png') 79 | try: 80 | result = solver.normal('captchas/captcha.png') 81 | except Exception as ex: 82 | print("Error : ", ex) 83 | 84 | else: 85 | code = result['code'] 86 | print("[+] Captcha Code : ",code) 87 | captcha_input_container = driver.find_element(By.ID,"solution") 88 | captcha_input_container.clear() 89 | captcha_input_container.send_keys(code) 90 | time.sleep(0.2) 91 | captcha_input_container.send_keys(Keys.ENTER) 92 | time.sleep(1.2) 93 | element_exist = True 94 | try: 95 | driver.find_element(By.XPATH,"//div[@class='hidden']") 96 | print("[+] Captcha Failed!") 97 | element_exist = True 98 | except: 99 | element_exist = False 100 | if not element_exist: 101 | print("[+] Captcha Bypassed!") 102 | wait.until(EC.presence_of_element_located((By.ID,"MainPart_divProgressbar"))) 103 | print("[+] Waiting for the loader") 104 | wait = WebDriverWait(driver, 25) 105 | time.sleep(1) 106 | flag2 = True 107 | time2 = driver.find_element(By.ID,"MainPart_lbWhichIsIn").text 108 | if time2 == "": 109 | time2 = "menos de un minuto" 110 | while flag2: 111 | queue_identificator = driver.find_element(By.ID,"hlLinkToQueueTicket2").text 112 | if queue_identificator != "": 113 | break 114 | 115 | # time.sleep(0.9) 116 | current_url = driver.current_url 117 | stop_time = time.time() 118 | elapsed_time_seconds = stop_time - start_time 119 | 120 | elapsed_time_minutes = elapsed_time_seconds / 60 121 | 122 | print(f"[+] Total time: {elapsed_time_seconds:.2f} seconds ({elapsed_time_minutes:.2f} minutes)") 123 | # queue_identificator = current_url.split('&')[0].split('=')[1] 124 | print(f"[+] Get {total_num} Link.") 125 | print("[+] Token URL : ", current_url, "| Estimated Time : ", time2, '| Queue Identificator : ', queue_identificator) 126 | print("[+] -------------------------------------------------------------------------------------") 127 | with open('output/output.csv', 'a', encoding="utf-8", newline='') as f: 128 | writer = csv.writer(f) 129 | writer.writerow([current_url, queue_identificator, time2]) 130 | flag = False 131 | break 132 | finally: 133 | driver.quit() 134 | 135 | # _____________________________ BOT END _________________________________ 136 | 137 | # _____________________________ RUNING IT _______________________________ 138 | 139 | if __name__ == "__main__": 140 | print("[+] HELLO ! Hope you are well.") 141 | run = int(input("[+] How many times you want to run the bot : ")) 142 | total_num = 0 143 | for i in range(run): 144 | total_num += 1 145 | execute_driver(total_num) 146 | print('[-] ____________________________ THANK YOU ________________________________') 147 | print('[-] ____________________________ BYE ________________________________') 148 | 149 | # ____________________________ THANK YOU ________________________________ 150 | # ____________________________ BYE _____________________________________ -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | selenium-wire==5.1.0 2 | selenium==4.12.0 3 | 2captcha-python==1.2.2 -------------------------------------------------------------------------------- /run.bat: -------------------------------------------------------------------------------- 1 | :loop 2 | 3 | cmd.exe /c "python check.py" 4 | 5 | goto loop --------------------------------------------------------------------------------