I know there are already a couple threads about this, but I've went over them all, and this is my 3rd day trying to break through and haven't made any improvements. Here is the situation:
I'm trying to use this https://github.com/tejavoo/GooglePlayReviewScraper/blob/master/scraper.py to create a google play review scraper for my research, but continue recieving the following error:
Conda3/Python38/Windows10/Spyder 4.0.1
I've made sure that the chromedriver is in the PATH, and I've made sure it as all permissions, along with spyder and python. I also made sure it was the correct version that matches my google chrome.
I've downloaded the chromedriver, unzipped it into the folder I'm working in.
I also didn't have the Permission error (Winerror 5) Until I recently updated to spyder 4.
Please, what am I missing?
chromedriver = "C:\\Users\\james\\Downloads\\ML\\New folder\\chromedriver.exe" options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('window-size=1200x600') # optional driver = webdriver.Chrome(executable_path = chromedriver, chrome_options = options) The Error
Traceback (most recent call last): File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start stdin=PIPE) File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 104, in __init__ super(SubprocessPopen, self).__init__(*args, **kwargs) File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\subprocess.py", line 800, in __init__ restore_signals, start_new_session) File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\subprocess.py", line 1207, in _execute_child startupinfo) *PermissionError: [WinError 5] Access is denied* During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\james\Downloads\ML\New folder\PlayReviews.py", line 37, in <module> driver = webdriver.Chrome(executable_path = chromedriver, chrome_options = options) File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__ self.service.start() File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\selenium\webdriver\common\service.py", line 88, in start os.path.basename(self.path), self.start_error_message) WebDriverException: 'chromedriver.exe' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home And if I change the code and place '' around chromedriver like this
chromedriver = ("C:\\Users\\james\\Downloads\\ML\\New folder\\chromedriver.exe") options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('window-size=1200x600') # optional driver = webdriver.Chrome(executable_path= 'chromedriver', chrome_options = 'options') I get this
runcell(0, 'C:/Users/james/Downloads/ML/New folder/PlayReviews.py') C:\Users\james\Downloads\ML\New folder\PlayReviews.py:37: DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(executable_path= 'chromedriver', chrome_options = 'options') Traceback (most recent call last): File "C:\Users\james\Downloads\ML\New folder\PlayReviews.py", line 37, in <module> driver = webdriver.Chrome(executable_path= 'chromedriver', chrome_options = 'options') File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 64, in __init__ desired_capabilities = options.to_capabilities() AttributeError: 'str' object has no attribute 'to_capabilities' And a webdriver.py page opens
Any help is much appreciated!
Cheers :)
Update
I tried the raw string idea as mentioned
chromedriver = "C:/Users/james/Downloads/ML/New folder/PlayReviews.py" options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('window-size=1200x600') # optional driver = webdriver.Chrome(executable_path = r'C:\\Users\\james\\Downloads\\ML\\New folder\\chromedriver.exe', chrome_options='options') And it seems to maybe pass it? As now I am on to this error :
runcell(0, 'C:/Users/james/Downloads/ML/New folder/PlayReviews.py') C:\Users\james\Downloads\ML\New folder\PlayReviews.py:39: DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(executable_path = r'C:\\Users\\james\\Downloads\\ML\\New folder\\chromedriver.exe', chrome_options='options') Traceback (most recent call last): File "C:\Users\james\Downloads\ML\New folder\PlayReviews.py", line 39, in <module> driver = webdriver.Chrome(executable_path = r'C:\\Users\\james\\Downloads\\ML\\New folder\\chromedriver.exe', chrome_options='options') File "C:\Users\james\.conda\envs\spyder-4.0.0_1\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 64, in __init__ desired_capabilities = options.to_capabilities() AttributeError: 'str' object has no attribute 'to_capabilities' However, this error, actually comes from line 64 of the webdriver.py which opens as a result of running the former
if chrome_options: warnings.warn('use options instead of chrome_options', DeprecationWarning, stacklevel=2) options = chrome_options if options is None: # desired_capabilities stays as passed in if desired_capabilities is None: desired_capabilities = self.create_options().to_capabilities() else: if desired_capabilities is None: desired_capabilities = options.to_capabilities() else: desired_capabilities.update(options.to_capabilities())