Threading и selenium - Python
Формулировка задачи:
Приветствую форумчан, никак не могу понять, в чем проблема. Собственно, вот мой код:
По задумке, ссылки должны открываться в 2 созданных мною потоках, однако при запуске программы проходит несколько секунд и мне показывает, что она выполнена (хотя даже браузеры не были открыты!), даже ошибок нет. В чем может быть проблема?
В итоге запускает браузеры (но почему-то не в 2 потока, а по очереди), в каждом запущенном открывает по одной ссылке, а потом выбивает ошибку, что "NoneType object has no attribute "start"". Ну и еще подправил ошибку на строке 13, правильно
. В чем моя ошибка?
Листинг программы
- import threading
- from queue import Queue
- from selenium import webdriver
- #driver = webdriver.PhantomJS(executable_path=r'C:\phantomjs-2.1.1-windows\bin\phantomjs.exe')
- #driver = webdriver.Firefox(executable_path=r'C:\geckodriver\geckodriver.exe')
- class visiter(threading.Thread):
- def worker():
- url = my_urls.get()
- driver = webdriver.Firefox(executable_path=r'C:\geckodriver\geckodriver.exe')
- driver.get(url)
- urls.task_done()
- urls = ['https://www.python.org/',
- 'http://www.cyberforum.ru/',
- 'http://deer.io/',
- 'https://www.google.com.ua/'
- ]
- my_urls = Queue()
- for url in urls:
- my_urls.put(url)
- thread1 = visiter()
- thread2 = visiter()
- thread1.start()
- thread2.start()
В общем, кое-что поменял на 26 и 27 строке кода:
Листинг программы
- thread1 = visiter.worker()
- thread2 = visiter.worker()]
Листинг программы
- my_urls.task_done()
Решение задачи: «Threading и selenium»
textual
Листинг программы
- from multiprocessing import Pool
- def printer(word):
- print(word)
- if __name__ == '__main__':
- words = ['green', 'blue', 'yellow', 'pink']
- pool = Pool(5)
- pool.map(printer, words)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д