Selenium&WebDriver for Chrome无法在JupyterLabMac上运行

问题描述

背景:
我正在尝试在Mac上使用Selenium来刮取食谱网站,但是在使用Selenium初始化Chrome WebDriver时遇到问题。我下载了chromedriver(Windows和Mac版本),并且与JupyterNotebook文件位于同一目录中:

enter image description here

代码:

from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import time
import csv
import os
import sys

driver=webdriver.Chrome('chromedriver')
url = "https://www.simplyrecipes.com/index/"
driver.get(url) 
response=requests.get(url)
soup=BeautifulSoup(response.text,'html.parser')

错误:

driver---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
     75                                             stderr=self.log_file,---> 76                                             stdin=PIPE)
     77         except TypeError:

~/anaconda3/envs/DataScience/lib/python3.7/subprocess.py in __init__(self,args,bufsize,executable,stdin,stdout,stderr,preexec_fn,close_fds,shell,cwd,env,universal_newlines,startupinfo,creationflags,restore_signals,start_new_session,pass_fds,encoding,errors,text)
    799                                 errread,errwrite,--> 800                                 restore_signals,start_new_session)
    801         except:

~/anaconda3/envs/DataScience/lib/python3.7/subprocess.py in _execute_child(self,p2cread,p2cwrite,c2pread,c2pwrite,errread,start_new_session)
   1550                             err_msg += ': ' + repr(err_filename)
-> 1551                     raise child_exception_type(errno_num,err_msg,err_filename)
   1552                 raise child_exception_type(err_msg)

FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver'

During handling of the above exception,another exception occurred:

WebDriverException                        Traceback (most recent call last)
<ipython-input-50-130893dfba7a> in <module>
      1 #set up chromedriver
----> 2 =web.Chrome('chromedriver')
      3 url = "https://www.simplyrecipes.com/index/"
      4 .get(url)
      5 response=requests.get(url)

~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self,executable_path,port,options,service_args,desired_capabilities,service_log_path,chrome_options,keep_alive)
     71             service_args=service_args,72             log_path=service_log_path)
---> 73         self.service.start()
     74 
     75         try:

~/anaconda3/envs/DataScience/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self)
     81                 raise WebDriverException(
     82                     "'%s' executable needs to be in PATH. %s" % (
---> 83                         os.path.basename(self.path),self.start_error_message)
     84                 )
     85             elif err.errno == errno.EACCES:

WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
driverdriver

帮助:
我已经阅读了documentation,并且很确定我已经设置了所有内容,所以我根本无法理解我要去哪里。
/>
任何建议将不胜感激

解决方法

即使Juypternote与chrome驱动程序位于同一路径,您仍然必须指定路径-

from bs4 import BeautifulSoup
import requests
from splinter import Browser
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import time
import csv
driver=webdriver.Chrome("/Users/williamforsyth/Documents/homeworks/Homework_Repos/group-project-2/Kathryn/chromedriver")
url = "https://www.simplyrecipes.com/index/"
driver.get(url) 
response=requests.get(url)
soup=BeautifulSoup(response.text,'html.parser')

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...