I am making a project to scrape a particular website using selenium. When I am running that script normally it’s working great but when I am calling it using celery task. It is throwing error
<code>[2024-06-08 11:21:34,119: ERROR/MainProcess] Task taskmanager.tasks.scrape_single_coin[af85f60a-0908-4df4-917d-3051306bcd7f] raised unexpected: WebDriverException()
Traceback (most recent call last):
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 453, in trace_task
R = retval = fun(*args, **kwargs)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 736, in __protected_call__
return self.run(*args, **kwargs)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 33, in scrape_single_coin
raise e
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 25, in scrape_single_coin
result = scraper.scrape_coin(coin)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagerscraper.py", line 22, in scrape_coin
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=self.chrome_options)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromewebdriver.py", line 45, in __init__
super().__init__(
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromiumwebdriver.py", line 50, in __init__
self.service.start()
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdrivercommonservice.py", line 109, in start
raise WebDriverException(f"Can not connect to the Service {self._path}")
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service C:Userssharm.wdmdriverschromedriverwin64125.0.6422.141chromedriver-win32/chromedriver.exe
</code>
<code>[2024-06-08 11:21:34,119: ERROR/MainProcess] Task taskmanager.tasks.scrape_single_coin[af85f60a-0908-4df4-917d-3051306bcd7f] raised unexpected: WebDriverException()
Traceback (most recent call last):
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 453, in trace_task
R = retval = fun(*args, **kwargs)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 736, in __protected_call__
return self.run(*args, **kwargs)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 33, in scrape_single_coin
raise e
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 25, in scrape_single_coin
result = scraper.scrape_coin(coin)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagerscraper.py", line 22, in scrape_coin
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=self.chrome_options)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromewebdriver.py", line 45, in __init__
super().__init__(
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromiumwebdriver.py", line 50, in __init__
self.service.start()
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdrivercommonservice.py", line 109, in start
raise WebDriverException(f"Can not connect to the Service {self._path}")
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service C:Userssharm.wdmdriverschromedriverwin64125.0.6422.141chromedriver-win32/chromedriver.exe
</code>
[2024-06-08 11:21:34,119: ERROR/MainProcess] Task taskmanager.tasks.scrape_single_coin[af85f60a-0908-4df4-917d-3051306bcd7f] raised unexpected: WebDriverException()
Traceback (most recent call last):
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 453, in trace_task
R = retval = fun(*args, **kwargs)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesceleryapptrace.py", line 736, in __protected_call__
return self.run(*args, **kwargs)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 33, in scrape_single_coin
raise e
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagertasks.py", line 25, in scrape_single_coin
result = scraper.scrape_coin(coin)
File "C:UserssharmPycharmProjectscoin_scrapertaskmanagerscraper.py", line 22, in scrape_coin
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=self.chrome_options)
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromewebdriver.py", line 45, in __init__
super().__init__(
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdriverchromiumwebdriver.py", line 50, in __init__
self.service.start()
File "C:UserssharmAppDataLocalProgramsPythonPython310libsite-packagesseleniumwebdrivercommonservice.py", line 109, in start
raise WebDriverException(f"Can not connect to the Service {self._path}")
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service C:Userssharm.wdmdriverschromedriverwin64125.0.6422.141chromedriver-win32/chromedriver.exe
This is the tasks.py file.
<code>from celery import shared_task
from .models import ScrapingTask
import logging
from .scraper import CoinMarketCapScraper
logger = logging.getLogger(__name__)
@shared_task
def scrape_single_coin(job_id, coin):
scraper = CoinMarketCapScraper()
try:
logger.info(f"Starting task for job_id: {job_id}, coin: {coin}")
result = scraper.scrape_coin(coin)
task = ScrapingTask.objects.get(job_id=job_id, coin=coin)
task.status = 'Completed'
task.result = result
task.save()
logger.info(f"Completed task for job_id: {job_id}, coin: {coin}")
except Exception as e:
logger.error(f"Error in task for job_id: {job_id}, coin: {coin} - {e}")
raise e
</code>
<code>from celery import shared_task
from .models import ScrapingTask
import logging
from .scraper import CoinMarketCapScraper
logger = logging.getLogger(__name__)
@shared_task
def scrape_single_coin(job_id, coin):
scraper = CoinMarketCapScraper()
try:
logger.info(f"Starting task for job_id: {job_id}, coin: {coin}")
result = scraper.scrape_coin(coin)
task = ScrapingTask.objects.get(job_id=job_id, coin=coin)
task.status = 'Completed'
task.result = result
task.save()
logger.info(f"Completed task for job_id: {job_id}, coin: {coin}")
except Exception as e:
logger.error(f"Error in task for job_id: {job_id}, coin: {coin} - {e}")
raise e
</code>
from celery import shared_task
from .models import ScrapingTask
import logging
from .scraper import CoinMarketCapScraper
logger = logging.getLogger(__name__)
@shared_task
def scrape_single_coin(job_id, coin):
scraper = CoinMarketCapScraper()
try:
logger.info(f"Starting task for job_id: {job_id}, coin: {coin}")
result = scraper.scrape_coin(coin)
task = ScrapingTask.objects.get(job_id=job_id, coin=coin)
task.status = 'Completed'
task.result = result
task.save()
logger.info(f"Completed task for job_id: {job_id}, coin: {coin}")
except Exception as e:
logger.error(f"Error in task for job_id: {job_id}, coin: {coin} - {e}")
raise e
I am stuck at this problem for last 2 days and today is deadline to submit this someone please help.
I tried importing the CoinMarketCapScraper class inside the task but no help. It was still throwing error.