Я работаю над проектом Crawl, используя Selenium
и Webdriver
. Поскольку эти данные мне нужно сканировать, когда они большие, я хочу разделить их на 2 threads
и запустить одновременно. Но когда я запускаю 2 Webdrivers
одновременно, мой код не может распознать, какие driver
принадлежат, а какие thread
заполняют информацию.
- Это код, который я установил 2
threads
run main
function:
if __name__ == '__main__':
data = load_data(INPUT_DIR)
t1_data = data[:250]
t2_data = data[250:]
try:
_thread.start_new_thread(main, (t1_data, LOG_FILE_T1))
_thread.start_new_thread(main, (t2_data, LOG_FILE_T2))
except:
print ("Error: unable to start thread")
while 1:
pass
Этот код я запускаю
Webdriver
:
def start_driver():
global driver
options = Options()
options.add_argument("--disable-notification")
options.add_argument("--disable-infobars")
options.add_argument("--mute-audio")
#options.add_argument("headless")
driver = webdriver.Chrome(options=options)
Два
Webdrivers
после запуска, я введу имя пользователя / пароль на facebook.com
def login(email, password):
""" Logging into our own profile """
try:
driver.get('https://mbasic.facebook.com')
time.sleep(DELAY_TIME)
driver.find_element_by_name('email').send_keys(email)
driver.find_element_by_name('pass').send_keys(password)
driver.find_element_by_name('login').click()
# deal with "Not Now" button if it show off at first time
not_now_button = driver.find_element_by_xpath("//a")
if not_now_button.size != 0:
not_now_button.click()
except Exception as e:
print('Error in Login')
print(e)
exit()
На шаге send_keys
оба threads
заполняют один и тот же текст коробка в 1 Webdriver
. Как я могу изменить свой код для 2 threads
, видеть другие Webdrive
и заполнять информацию?