configure selenium with chromedriver properly including its library depencies to allow pycharm run existing scrap script

Job ID: 33115117

Budget: $8 – $15 USD

with by ubuntu 20.04 and windows 10 voraccle box virtual machine. working supervised by ANYDESK only, no SSH.
Here is Python Script to run:

import time
from selenium import webdriver
import pyodbc
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import selenium.webdriver.support
from selenium.webdriver.chrome.options import Options
from selenium_stealth import stealth

hostname = "HOST_NAME"
port = "PORT"

def init_Browser():
options = Options()
# options.add_argument('--proxy-server=%s' % hostname + ":" + port)
# options.binary_location = 'C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe'
#options.add_argument("user-data-dir=/home/python/.config/google-chrome/")
options.add_argument("start-maximized")
#options.add_argument("--headless")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# # options.add_argument('--headless')
# options.page_load_strategy = 'none'
browser = webdriver.Chrome(options=options)

stealth(browser,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Win32",
webgl_vendor="Intel Inc.",
renderer="Intel Iris OpenGL Engine",
fix_hairline=True,
)
return browser

def scrape_data(browser):
browser.get('https://askurl.pe/Public/CheckPlateStatus.aspx')

#first iteration
plateNumber = browser.find_element(By.CSS_SELECTOR, '#MainContent_txtPlateNumber')
plateNumber.send_keys("A0A000")
time.sleep(10)

plateNo = WebDriverWait(browser, 10).until(
EC.presence_of_element_located(( By.CSS_SELECTOR, "#MainContent_lblPlateNew"))
)
print(plateNo.text)

i = 301
while (i<999):
try:
browser.execute_script("window.history.go(-1)")
# try:
plateNumber1 = WebDriverWait(browser, 8).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#MainContent_txtPlateNumber"))
)
plateNumber1.clear()
plateNumber1.send_keys("A0A"+str(i))
button1 = browser.find_element(By.CSS_SELECTOR,'.g-recaptcha')
button1.click()
PlacaNueva = WebDriverWait(browser, 8).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#MainContent_lblPlateNew"))
)

PlacaNueva = PlacaNueva.text
PlacaAnterior = browser.find_element(By.CSS_SELECTOR, "#MainContent_lblPlatePrevious").text

insert_DB(PlacaNueva, PlacaAnterior, Estado, PuntoEntrega, FechaDeInicio, FechaEntrega, NroSerie, Marca, Modelo, Propietario, TipoUso, TipoDeSol)

i=i+1
except:
print(str(i)+' not found')
i = i+1

def insert_DB(PlacaNueva, PlacaAnterior, Estado, PuntoEntrega, FechaDeInicio, FechaEntrega, NroSerie, Marca, Modelo, Propietario, TipoUso, TipoDeSol):
# MY SQL Server
conn = pyodbc.connect('Driver={SQL Server};'
'Server=sqlserver.xx.org;'
'Database=master;'
'UID=xx;'
'PWD=xx;'
'Trusted_Connection=no;')

cursor = conn.cursor()
query = ("""INSERT INTO test VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""")
data_tuple = (str(PlacaNueva),
str(PlacaAnterior),
cursor.execute(query, data_tuple)
conn.commit()

def main():
browser = init_Browser()
scrape_data(browser)
Related categories: JavaScript Python Linux Software Architecture DevOps